iphone - 将数据加载到 TextView 字段中时出现奇怪问题

标签 iphone ios sdk

简介:大家好,我的第一个应用很痛苦,但无法在线找到解决此“加载”问题的方法。

尝试做的事情:(a)从表格 View 中(b)单击单元格(c)插入详细 View ,其中 TextView 字段是从属性列表文件中填充的。

问题:一切正常(导航栏标题更新,后退按钮标题正确更改)但 TextView 字段显示为空白(IB 的默认状态)...首先。如果我单击后退按钮,然后返回到详细信息 View ,则 TextView 会正确加载并保持这种状态。完全莫名其妙。

代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // check for view controller
    if (self.savedScriptDetailVC ==nil) {
            SavedScriptDetailVC *savedScriptDetail =[[SavedScriptDetailVC alloc]initWithNibName:@"SavedScriptDetailView" bundle:nil];
            self.savedScriptDetailVC = savedScriptDetail;
            [savedScriptDetail release];
    }
    //      find row
    NSInteger row = [indexPath row];

    //get filepaths and set up arrays for pulling project names and text data
    NSString *textPath = [self savedScriptsPath]; //using outside function to get path
    NSArray *array = [self savedProjectNames]; //using outside function to pull project names
    NSArray *textArray =[[NSArray alloc] initWithContentsOfFile:textPath];
    textArray = [textArray valueForKey:@"ScriptText"];

    //populate text for textview in detail view. Works, but have to drill down, back out before effect takes, why?-->
    savedScriptDetailVC.fScriptText.text = [NSString stringWithFormat:@"%@", [textArray objectAtIndex:row]];
    savedScriptDetailVC.title =[NSString stringWithFormat:@"%@", [array objectAtIndex:row]]; //change nav title

    //change back button text
    UIBarButtonItem *backButton =[[UIBarButtonItem alloc]initWithTitle:@"Scripts" style:UIBarButtonItemStylePlain target:nil action:nil];
    self.navigationItem.backBarButtonItem =backButton;
    [backButton release];

    //using delegate to push views
    ProjectAppDelegate *delegate =[[UIApplication sharedApplication]delegate];
    [delegate.savedScriptsNavC pushViewController:savedScriptDetailVC animated:YES];
}

最佳答案

View Controller 的实际 View (及其所有 subview )只有在需要时才加载,即访问 view 属性。因此,在您第一次尝试设置文本字段的值时,文本字段还不存在,因为 View Controller 中的任何 View 都尚未创建。如果您要检查,您会发现 savedScriptDetailVC.fScriptText 为 nil。

一个简单的解决方法是在尝试操作这些 subview 之前访问[savedScriptDetailVC view]

关于iphone - 将数据加载到 TextView 字段中时出现奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215487/

相关文章:

iphone - 如何使用 CoreData 进行初始数据配置设置?

ios - AVFoundation, captureStillImageAsynchronouslyFromConnection 时如何关闭快门声音?

iphone - 从 iPhone 到服务器的最大上传大小

ios - 带有 BGRA CgBI 预乘 alpha 的 PNG 图像

api - dart api 划掉了变量

ios - Xcode UIWebView 不显示 URL 的内容,空白的白色 webview,没有错误

iphone - 可以在iOS 5 ipad编程中使用google Maps街景 带标注等mapkit的功能吗?

ios - 更改 UIImageView 大小以匹配图像与 AutoLayout

java - Android Studio中的assembleDebug错误

javascript - 如何获取admob-sdk-android.jar的API文档?