简介:大家好,我的第一个应用很痛苦,但无法在线找到解决此“加载”问题的方法。
尝试做的事情:(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/