我有一个 uiTableviewController 和一个 uiNavigationController。我可以从 uiNavigationController 中的 UITableViewController 实现委托 DidselectRowAtIndexPath 吗,所以当我在表中选择一行时,会在 uinavigationcontroller 中执行一个操作?
问问题
253 次
2 回答
0
您可以通过代码以编程方式将委托分配给不同的 viewController,这样更简洁。
uitableView.delegate = uinavigationviewcontroller.
但是我会在第一个视图控制器中实现数据源和委托,并在第二个视图控制器(在你的情况下是 navigationViewController)中编写一个自定义委托,并从第一个视图控制器中调用它 didSelectRowAtIndex: 。
于 2013-10-26T09:47:23.127 回答
0
您不需要继承 UINavigationController 并在那里实现 UITableViewDelegate,tableView 的 UIViewController 应该是委托,您只需从实现 tableView 委托的 viewController 引用它即可对 navigationController 执行操作。
只是给你一个例子:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
RSSItem *item = [_feed objectAtIndex:indexPath.row];
if (item.link) {
WebviewViewController *webViewController = [[WebviewViewController alloc] initWebViewWithLink:item.link title:item.title];
[self.navigationController pushViewController:webViewController animated:YES];
}
}
于 2013-10-26T09:43:27.663 回答