为什么在第一次启动时我的导航栏在状态栏下面
Why during first boot my navigation bar is under status bar
为什么当我用空视图控制器创建导航控制器时,我收到导航栏的奇怪行为?
这就是我创建导航控制器的方式。
init(
window: UIWindow,
keystore: Keystore,
navigationController: UINavigationController = UINavigationController()
) {
self.navigationController = navigationController
self.keystore = keystore
super.init()
window.rootViewController = navigationController
window.makeKeyAndVisible()
}
比我更简单:
func start() {
let x = UIViewController()
x.view.backgroundColor = UIColor.red
navigationController.setViewControllers([x], animated: true)
}
我收到:
但在下次应用启动时一切正常。
可能是这种情况,因为您在应用已经启动后设置了 NavigationController。
我建议在您的 AppDelegate 中设置 NavigationController。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let firstViewController = UIViewController()
let navigationController = UINavigationController(rootViewController: firstViewController)
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
return true
}
}
为什么当我用空视图控制器创建导航控制器时,我收到导航栏的奇怪行为?
这就是我创建导航控制器的方式。
init(
window: UIWindow,
keystore: Keystore,
navigationController: UINavigationController = UINavigationController()
) {
self.navigationController = navigationController
self.keystore = keystore
super.init()
window.rootViewController = navigationController
window.makeKeyAndVisible()
}
比我更简单:
func start() {
let x = UIViewController()
x.view.backgroundColor = UIColor.red
navigationController.setViewControllers([x], animated: true)
}
我收到:
可能是这种情况,因为您在应用已经启动后设置了 NavigationController。
我建议在您的 AppDelegate 中设置 NavigationController。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let firstViewController = UIViewController()
let navigationController = UINavigationController(rootViewController: firstViewController)
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
return true
}
}