2016-07-16 94 views
0

首先,请提前致谢! 其次,我搜索和检查论坛的答案是有帮助的,但找不到任何有帮助的东西。我知道这是一个很重要的领域。如何将表格视图中的信息传递到详细视图

所以我试图从表视图推送信息到详细信息视图控制器。信息在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]; 
} 
+0

为什么要使用一个额外的笔尖,由于您使用的故事板呢?为什么不使用segue这是最简单的代码最简单的方法。 – vadian

回答

0

如果您的控制器在故事板中,则可以使用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

辉煌,工作完美!非常感谢! 当定时器允许我选择作为答案! –

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]; 
} 

希望它有帮助

相关问题