2

2 つのビューがあります。1 つはルート viewController で、もう 1 つは検索 viewController です。検索viewControllerのUISearchBarでキャンセルをクリックすると、ルートviewControllerに戻りたいと思います。私はこのコードを持っています:

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    [self.navigationController popToRootViewControllerAnimated:YES];
    }

しかし、キャンセルをクリックすると、次のエラーが表示されます。

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'search contents navigation controller must not change between -setActive:YES and -setActive:NO'

私は何を間違っていますか?私の[self.navigationController popToRootViewControllerAnimated:YES];検索ビューの他の領域で動作します。

4

1 に答える 1

7

ナビゲーション コントローラーをポップする前に、最初に検索ディスプレイ コントローラーを非表示にする必要があります。

[self.searchDisplayController setActive:NO];

これにより、アニメーションなしで検索インターフェイスが非表示になります。

于 2013-06-24T08:44:20.567 に答える