【发布时间】:2011-12-17 09:11:39
【问题描述】:
我是 iOS 开发新手,所以请放轻松 :)
使用适用于 iOS 5 的 Xcode 4.2,我在 IB 中构建了一个视图控制器,其中的一个 tableview 通过 push segue(在 table view cell 级别)链接到一个详细视图控制器
我想根据所选单元格的索引使用来自我的数据源的数据设置详细信息页面标签。最初我对“didSelectRowAtIndexPath”进行了编码,结果发现这是在 segue 处理之后调用的,然后发现我需要调用 prepareForSegue
我的问题是,无论我尝试什么,因为 tableView 不是传递给 prepareForSegue 的参数(与我迄今为止使用的大多数其他方法不同),我正在努力按顺序访问视图控制器中的 tableView调用 indexPath 方法,以便我可以引用我的数据源
我见过很多使用 self 的示例,如下所示,但这会导致错误,指出视图控制器中不存在 tableView
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
DetailViewController *detail = [segue destinationViewController];
detail.primary = [datasource objectAtIndex:selectedIndexPath.row];
detail.seconday = [datalist objectForKey:detail.primary];
}
我也试过
ViewController *main = [segue viewController];
而不是使用self,但这会导致同样的问题
我知道我可以将示例重写为 Table View Controller,但想知道这种方式是否可行?正如我所看到的,人们在开发中使用这两种方法
作为参考,我正在关注本教程...http://kurrytran.blogspot.com/2011/10/ios-5-storyboard-and.html
当我到达完成详细页面的部分时,我想,为什么不使用 segue 将表格视图单元格链接到详细页面,并在详细页面之前编写状态和资本的复制代码显示。从本教程可以看出,主控制器是一个视图控制器
我的理解是,如果以后需要开发成更复杂的东西,不使用 UITableViewController 会给任何应用程序更大的灵活性
希望你能帮忙, 伊兹
【问题讨论】:
标签: uiviewcontroller ios5 tableview