在我的应用中,我有UITabBarController
个UINavigationController
个。{我正在尝试在Apple的音乐应用中添加搜索功能,其中每个UIViewController
navigatonItem
都会显示一个搜索图标。点按此图标后,会显示UISearchController
。
我面临的问题是,如果我展示UISearchController
并切换到其他标签(在UISearchController
searchBar
中输入任何内容之前),那么我回到该标签,UINavigationController
不再可见。即使我取消了搜索,UISearchController
也会被取消,但我看不到原来的UINavigationController
。如果我在切换到其他条形图之前在搜索栏中输入内容,则搜索结果始终可见,但是当我解除UISearchController
时UINavigationController
我的UITabBarController
未显示。我只能看到tabBar
' UISearchController
,其他所有内容都是白色的。
但是,如果UINavigationController
被取消后,如果我转到另一个标签然后又返回到原始标签,则再次显示UIViewController
。
这是我的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)
}
子类的代码:
POJO