导航栏不显示在Swift 5
Navigation bar is not displayed in Swift 5
我一直在开发 iOS 应用程序,我正在尝试向我的应用程序显示导航栏。我使用故事板来处理一些基本的 UI,但对于导航栏等其他部分,我正在尝试通过代码来实现它。
在 AppDelegate.swift 文件中,我放入了以下代码。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
UINavigationBar.appearance().tintColor = .black
window?.rootViewController = FirstViewController()
window?.rootViewController?.view.backgroundColor = UIColor.white
window?.makeKeyAndVisible()
return true
}
但是,导航栏没有出现在 FistViewController 上。
在FirstViewController中,我还把下面的代码放到viewwillappear函数中,用来显示导航栏。
self.navigationController?.isNavigationBarHidden = false
self.navigationController?.navigationBar.barStyle = .black
正如我所说,我有一个故事板,但我只用它来将 FirstViewController 设置为 isInitialView 控制器。我在 FirstViewController 上也有一个 table 视图,我可以看到它,但我没有看到导航栏。
所以我在想是不是我写的显示导航栏的代码有误...
有人知道我在这里遗漏了什么吗?
let viewController = FirstViewController()
let navVc = UINavigationController(rootViewController: viewController)
window?.rootViewController = navVc
您看不到导航栏,因为您没有将当前 viewcontroller 嵌入到导航控制器中。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let viewController = FirstViewController()
let navigationController = UINavigationController(rootViewController: viewController)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
return true
}
由于您使用的是故事板,因此您应该将 ViewController 嵌入到导航控制器中。你可以这样做,
- 首先打开您的
Main.storyboard
文件
- Select 你的初始 ViewController
- 进入
Editor > Embed in > Navigation Controller
或者您可以通过参考@jignesh 的回答以编程方式完成
我一直在开发 iOS 应用程序,我正在尝试向我的应用程序显示导航栏。我使用故事板来处理一些基本的 UI,但对于导航栏等其他部分,我正在尝试通过代码来实现它。
在 AppDelegate.swift 文件中,我放入了以下代码。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
UINavigationBar.appearance().tintColor = .black
window?.rootViewController = FirstViewController()
window?.rootViewController?.view.backgroundColor = UIColor.white
window?.makeKeyAndVisible()
return true
}
但是,导航栏没有出现在 FistViewController 上。
在FirstViewController中,我还把下面的代码放到viewwillappear函数中,用来显示导航栏。
self.navigationController?.isNavigationBarHidden = false
self.navigationController?.navigationBar.barStyle = .black
正如我所说,我有一个故事板,但我只用它来将 FirstViewController 设置为 isInitialView 控制器。我在 FirstViewController 上也有一个 table 视图,我可以看到它,但我没有看到导航栏。
所以我在想是不是我写的显示导航栏的代码有误...
有人知道我在这里遗漏了什么吗?
let viewController = FirstViewController()
let navVc = UINavigationController(rootViewController: viewController)
window?.rootViewController = navVc
您看不到导航栏,因为您没有将当前 viewcontroller 嵌入到导航控制器中。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let viewController = FirstViewController()
let navigationController = UINavigationController(rootViewController: viewController)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
return true
}
由于您使用的是故事板,因此您应该将 ViewController 嵌入到导航控制器中。你可以这样做,
- 首先打开您的
Main.storyboard
文件 - Select 你的初始 ViewController
- 进入
Editor > Embed in > Navigation Controller
或者您可以通过参考@jignesh 的回答以编程方式完成