0

私は uiTableviewController と uiNavigationController を持っています。uiNavigationController の UITableViewController からデリゲート DidselectRowAtIndexPath を実装して、テーブルの行を選択すると、uinavigationcontroller でアクションが実行されるようにすることはできますか?

4

2 に答える 2

0

コードを介してプログラムでデリゲートを別のviewControllerに割り当てることができます。これははるかにクリーンです。

    uitableView.delegate = uinavigationviewcontroller.

しかし、最初のView Controllerにデータソースとデリゲートの両方を実装し、2番目のviewController(あなたの場合は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 に答える