【发布时间】:2017-10-18 16:21:33
【问题描述】:
当我的应用向 firebase 发出请求时,我已将启动屏幕设为根视图,然后在请求完成后重新分配根视图。不幸的是,当我这样做时,我的导航栏消失或被新的根视图覆盖。当我运行模拟器时,我可以简单地看到导航栏,然后它被我的 TableViewController 覆盖。如何防止这种情况发生?
这是我在 AppDelegate 中实现所有这些的代码:
var window: UIWindow?
let searchManager = SearchManager()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
makeRootViewLaunchScreen()
FirebaseApp.configure()
searchManager.getMosaicTitles { results in
self.searchManager.listOfMosaics = results
self.stopDisplayingLaunchScreen()
}
// Adds border to bottom of the nav bar
UINavigationBar.appearance().shadowImage = UIImage.imageWithColor(color: UIColor(red:0.00, green:0.87, blue:0.39, alpha:1.0))
// Override point for customization after application launch.
return true
}
func makeRootViewLaunchScreen() {
let mainStoryboard: UIStoryboard = UIStoryboard(name: "LaunchScreen", bundle: nil)
let viewController = mainStoryboard.instantiateViewController(withIdentifier: "launchScreen")
UIApplication.shared.keyWindow?.rootViewController = viewController
}
func stopDisplayingLaunchScreen() {
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = mainStoryboard.instantiateViewController(withIdentifier: "centralViewController") as? SearchResultsTableViewController
viewController?.searchManager = searchManager
UIApplication.shared.keyWindow?.rootViewController = viewController
UIApplication.shared.keyWindow?.rootViewController?.navigationController?.isNavigationBarHidden = false
}
如您所见,我尝试使用UIApplication.shared.keyWindow?.rootViewController?.navigationController?.isNavigationBarHidden = false 来强制显示导航栏,但它没有。我的应用仍然是这样的:
【问题讨论】:
标签: ios uitableview uinavigationcontroller uinavigationbar rootview