我目前正在开发具有搜索功能的应用程序,为此,我使用了UISearchController。 UISearchController的searchBar显示在NavigationItem中。
问题是,完成搜索后,可以单击某个项目以在UITableViewController中显示详细信息。在此UITableViewController中,我使NavigationBar透明,但是当关闭视图时,即使我在显示UISearchController的UITableViewController的viewWillAppear方法中重置了NavigationBar,我也对searchBar和statusBar的外观感到麻烦。
// Extension to make the NavigationBar transparent or as "default"
extension UINavigationBar {
func setTransparent() {
setBackgroundImage(UIImage(), for: .default)
isTranslucent = true
shadowImage = UIImage()
}
func setDefault() {
setBackgroundImage(nil, for: .default)
isTranslucent = true
shadowImage = nil
}
}
// I set the bar as "default" when the SearchController appear
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setDefault()
}
// I set the bar as transparent when the TableViewController is pushing
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setTransparent()
}
Because a video is better than words !
我不知道这是否是iOS的错误,但是我寻找的应用程序具有与我预期的行为相同的功能,因此我发现Apple TV应用程序的功能完全相同,但是在TV应用程序中可以完美地运行。
我该怎么做?