Uiviewcontroller UISearchController可见时,切换到其他选项卡时,UINavigationController将消失
在我的应用程序中,我有一个Uiviewcontroller UISearchController可见时,切换到其他选项卡时,UINavigationController将消失,uiviewcontroller,uinavigationcontroller,uitabbarcontroller,uisearchcontroller,Uiviewcontroller,Uinavigationcontroller,Uitabbarcontroller,Uisearchcontroller,在我的应用程序中,我有一个uitabarcontroller和几个UINavigationController。我正在尝试添加一个搜索功能,比如在苹果的音乐应用程序中,在每个UIViewController的navigationItem中都会出现一个搜索图标。点击此图标时,将显示一个UISearchController 我面临的问题是,如果我显示UISearchController并切换到其他选项卡(在UISearchController的搜索栏中键入任何内容之前),当我返回该选项卡时,UINa
uitabarcontroller
和几个UINavigationController
。我正在尝试添加一个搜索功能,比如在苹果的音乐应用程序中,在每个UIViewController
的navigationItem
中都会出现一个搜索图标。点击此图标时,将显示一个UISearchController
我面临的问题是,如果我显示UISearchController
并切换到其他选项卡(在UISearchController
的搜索栏中键入任何内容之前),当我返回该选项卡时,UINavigationController
将不再可见。即使我取消搜索,UISearchController
也会被取消,但我看不到我原来的UINavigationController
。如果在切换到不同的搜索栏并返回之前在搜索栏中键入了内容,搜索结果将始终可见,但当我关闭UISearchController
myUINavigationController
时,不会显示。我只能看到UITabBarController
的tabBar
,其他所有东西都是白色的
但是,如果一旦禁用了UISearchController
,如果转到另一个选项卡,然后返回到原始选项卡,则会再次出现UINavigationController
下面是myUIViewController
子类的代码:
let searchResultsController = SearchResultsController()
var searchController: UISearchController!
var searchButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
searchButton = UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: Selector("showSearch:"))
navigationItem.rightBarButtonItem = searchButton
searchController = UISearchController(searchResultsController: searchResultsController)
searchController.searchResultsUpdater = self
searchController.searchBar.delegate = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
}
func showSearch(sender: AnyObject? = nil) {
presentViewController(searchController, animated: true, completion: nil)
}
这在这里解决了可能的重复