12

私はこの議論についてたくさん読みました、私はうまくいくこの例をテストしました: ソースコードの例。しかし、これはストーリーボードを使用していません(これが私のプロジェクトを機能させない理由かどうかはわかりません)ストーリーボードを使用して別のプロジェクトを作成しましたが、同じ一連の指示は機能しません...

-(void)viewDidAppear:(BOOL)animated{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
    [firstController.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    [firstTable.delegate tableView:firstTable didSelectRowAtIndexPath:indexPath];
}

これが私のプロジェクトです。前のリンクと同じですが、viewDidAppearを追加するだけで、 機能していないプロジェクト を誰かが教えてくれますか?ありがとう

4

2 に答える 2

25

プロジェクトをダウンロードするコードを調べてみました。問題は、firstController.tableViewがnilであるということです。
だからそれを修正します:

[firstTable selectRowAtIndexPath:indexPath 
                        animated:NO 
                  scrollPosition:UITableViewScrollPositionNone];

または、firstController.tableViewをテーブルビューに割り当てます。

于 2012-12-10T20:49:50.080 に答える
22
- (void)viewDidLoad {
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
}

デリゲートからのコールバックが必要な場合:

if ([self.tableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) {
    [self.tableView.delegate tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
}
于 2012-12-10T20:44:14.343 に答える