使用popViewControllerAnimated的NSInternalInconsistencyException:NO

时间:2014-08-12 17:15:14

标签: ios objective-c uiviewcontroller

运行程序时,收到以下崩溃错误:

断言失败 - [UISearchDisplayController setActive:animated:],/ SourceCache / UIKit_Sim / UIKit-2903.23 / UISearchDisplayController.m:1275

由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'搜索内容导航控制器不能在-setActive:YES和-setActive之间更改:否'

在下面的代码块之后,我在搜索栏上点击取消时发生错误:

-(void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {
    [self.searchBar resignFirstResponder];
    _displayRowData = nil;
    [_sdc.searchResultsTableView reloadData];

    [self.navigationController popViewControllerAnimated:NO];
}

注意:切换到:

时,此错误消失了
[self.navigationController popViewControllerAnimated:YES];

即使我发出了对-setActive的唯一电话,这个错误仍然存​​在。

没有动画的popViewController的正确方法是什么?调用此选项时,导航堆栈上还有另一个视图控制器。我不能使用dismissViewController,因为我需要保留导航堆栈上的所有内容。我只想要一个干净的过渡到我以前的视图控制器。

1 个答案:

答案 0 :(得分:0)

解决。在弹出之前调用以下内容修复了我的问题:

[_sdc setActive:NO animated:YES];
[self.navigationController popViewControllerAnimated:NO];