0

我有一个 uiTableviewController 和一个 uiNavigationController。我可以从 uiNavigationController 中的 UITableViewController 实现委托 DidselectRowAtIndexPath 吗,所以当我在表中选择一行时,会在 uinavigationcontroller 中执行一个操作?

4

2 回答 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 回答