我有UITableViewController
,其中包含UISearchController
。然后将其转换为UIViewController
,然后是另一个UIViewController
。从第二个视图开始,我想通过首先隐藏UISearchController然后弹出两个视图来转换回UITableViewController
。
要实现我的目标:
var stackViews = self.navigationController?.viewControllers.count
var musicTableController = self.navigationController?.viewControllers[stackViews!-3] as! MusicTableController
musicTableController.resultSearchController.active = false
self.navigationController?.popToViewController(musicTableController, animated: true)
然而,这会导致错误
popToViewController:transition: called on <UINavigationController 0x7fb42a575550> while an existing transition or presentation is occurring; the navigation stack will not be updated.
我猜测我需要在resultsSearchController转换完成之后弹出视图。
Swift,ios8,xcode6.4
答案 0 :(得分:1)
您可以在dismiss(_:_:)
上致电UISearchController
,而不是将isActive
设为false。
if searchController.isActive {
self.searchController.dismiss(animated: true, completion: {
// Play segue, dismiss or pop ...
})
} else {
// Play segue, dismiss or pop ...
}