如何将表格视图中的信息传递到详细视图
问题描述:
首先,请提前致谢! 其次,我搜索和检查论坛的答案是有帮助的,但找不到任何有帮助的东西。我知道这是一个很重要的领域。如何将表格视图中的信息传递到详细视图
所以我试图从表视图推送信息到详细信息视图控制器。信息在plist上。我用来获取此代码的教程很旧,并使用xibs。用故事板,它会引发以下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:
我知道这是因为我没有名为“DetailViewController”一个XIB文件。我希望这个(以及来自plist的信息)被推送到我的故事板中的“DetailViewController”,但是我找不到执行此操作所需的代码。
你能帮我解决吗?我需要做些什么改变?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *BibleVerses = [BibleReading objectAtIndex:indexPath.row];
if (!self.detailViewController) {
self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
self.detailViewController.detailItem = BibleVerses;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
答
如果您的控制器在故事板中,则可以使用instantiateViewControllerWithIdentifier
方法。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *BibleVerses = [BibleReading objectAtIndex:indexPath.row];
if (!self.detailViewController) {
self.detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
}
self.detailViewController.detailItem = BibleVerses;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
+0
辉煌,工作完美!非常感谢! 当定时器允许我选择作为答案! –
答
使用此代码,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *BibleVerses = [BibleReading objectAtIndex:indexPath.row];
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifierName"];
self.detailViewController.detailItem = BibleVerses;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
希望它有帮助
为什么要使用一个额外的笔尖,由于您使用的故事板呢?为什么不使用segue这是最简单的代码最简单的方法。 – vadian