私は uiTableviewController と uiNavigationController を持っています。uiNavigationController の UITableViewController からデリゲート DidselectRowAtIndexPath を実装して、テーブルの行を選択すると、uinavigationcontroller でアクションが実行されるようにすることはできますか?
質問する
253 次
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 に答える