将委托uitableview发送给其他视图控制器

时间:2013-10-26 09:23:21

标签: ios uitableview

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

2 个答案:

答案 0 :(得分:0)

你不需要子类化UINavigationController并在那里实现UITableViewDelegate,tableView的UIViewController责任应该是委托,你可以在navigationController上运行你的操作,只需从实现tableView委托的viewController中获取它

只是举个例子:

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

}

答案 1 :(得分:0)

您可以通过代码以编程方式将委托分配给不同的viewController,它更清晰。

    uitableView.delegate = uinavigationviewcontroller.

但我会在第一个视图控制器中实现datasource和delegate,并在第二个viewController(在你的情况下是navigationViewController)中编写一个自定义委托,并从第一个调用didSelectRowAtIndex :.