2011-06-26 5 views
0

私がやっていることは、私のsearchResultsTableViewでselectRowAtIndexPathを呼び出すことです。私はviewWillAppearでこれをやっているので、別のView Controllerから戻ってきた行が選択されます。この単純な例では、2行目に行くように求めています。何が起こるかは、2行目を短く選択してから選択肢がなくなるということです。何か案は?私のsearchController.searchResultsTableViewのselectRowAtIndexPathを呼び出しようとしています

-(void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    // just select row 2 as a test 
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0]; 
    [self.searchController.searchResultsTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
    [self.searchController.searchResultsTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:NO]; 
} 

おかげ

答えて

2

ビューは、それが提示しています直前に存在し、そしてません一度それが選択されているので、たぶん、あなたは:, viewDidAppearでそれを呼び出す必要があります。あなたのコントローラのスーパークラスは、viewDidAppear上のすべての行の選択を解除するかもしれません。

はまた、私はあなただけの1でこれらの2つの行を行うことができると思います。

[self.searchController.searchResultsTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionTop]; 
+0

パーフェクト!どうもありがとうございました。エリック –

0

だけviewDidLoadまたはviewDidAppearで行くと、ちょうどEmilioPelaezによって語ら単線を使用しています。

関連する問題