在UINavigationController逻辑中的searchDisplayController.searchResultsTableView的行为

ff1*_*f10 2 iphone objective-c uitableview uinavigationcontroller

我在UINavigationController中有一个普通的UITableViewController.前者包括连接到搜索显示控制器的搜索栏.我使用标准行为,即当用户输入任何字符时,搜索结果表视图覆盖正常的表视图.

现在,两个表视图都在导航控制器中起作用.如果我从搜索结果表视图中选择一个项目,则会将新的uitableviewcontroller(包含所选项目的特定信息)推送到导航堆栈.当我点击该控制器上的后退按钮时,我发现了一个奇怪的行为:普通表视图的节标题覆盖了我的搜索结果表视图的节标题.它们显示为正在显示我的正常表视图(我可以从标题之间的行数看到,尽管行保持为空).仍在显示搜索结果表行.

这种行为来自于我在viewWillAppear上重新加载表视图的事实.我这样做是为了对用户在应用程序中的某个其他位置或自动后台数据更新中对数据库所做的更改做出反应.我已经尝试轮询是否通过显示最近显示的表视图

(self.tableView == self.searchDisplayController.searchResultsTableView)
Run Code Online (Sandbox Code Playgroud)

但是在我返回普通的表视图控制器后,该语句始终为false.

问题:如何轮询表视图的正确状态以避免显示错误?

MrM*_*age 11

UISearchDisplayController类实现了一个active属性.猜猜它用于什么:-)

例如,只是检查(self.searchDisplayController.active)([self.searchDisplayController isActive]).