为什么我的 iOS11 navigationController 不工作
why my iOS11 navigationController doesn't to work
我只想显示一个大标题。
我的 ViewController.swift
看起来像:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
title = "Hello world"
self.navigationController?.navigationBar.prefersLargeTitles = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
但是没用。
let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60))
navigationBar.backgroundColor = UIColor(red: 46.0/255.0, green: 145.0/255.0, blue: 245.0/255.0, alpha: 1.0)
self.navigationItem.title = "Add Title"
self.view .addSubview(navigationBar)
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}
要在导航栏中显示大标题,您需要 largeTitleDisplayMode
.always
添加以下代码行到您的 viewDidLoad
也不要忘记检查 ios11是否
title = "Hello world"
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
}
你的UIViewController
应该有一个UINavigationController
如果您的 UIViewController 未嵌入 UINavigationController,请执行以下步骤
打开你的故事板 -> select 你的视图控制器 -> 编辑器 -> 嵌入 -> NavigationController
首先,确保您的 ViewController
在 UINavigationController
内。
继续检查 IOS 11
title = "Title
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
} else { ... }
你的问题是,你需要在导航控制器
中添加你的viewcontroller
window = UIWindow(frame: UIScreen.main.bounds)
let mainController = ViewController()
let navigationController = UINavigationController(rootViewController: mainController)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
我只想显示一个大标题。
我的 ViewController.swift
看起来像:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
title = "Hello world"
self.navigationController?.navigationBar.prefersLargeTitles = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
但是没用。
let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60))
navigationBar.backgroundColor = UIColor(red: 46.0/255.0, green: 145.0/255.0, blue: 245.0/255.0, alpha: 1.0)
self.navigationItem.title = "Add Title"
self.view .addSubview(navigationBar)
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}
要在导航栏中显示大标题,您需要 largeTitleDisplayMode
.always
添加以下代码行到您的 viewDidLoad
也不要忘记检查 ios11是否
title = "Hello world"
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
}
你的UIViewController
应该有一个UINavigationController
如果您的 UIViewController 未嵌入 UINavigationController,请执行以下步骤
打开你的故事板 -> select 你的视图控制器 -> 编辑器 -> 嵌入 -> NavigationController
首先,确保您的 ViewController
在 UINavigationController
内。
继续检查 IOS 11
title = "Title
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
} else { ... }
你的问题是,你需要在导航控制器
中添加你的viewcontrollerwindow = UIWindow(frame: UIScreen.main.bounds)
let mainController = ViewController()
let navigationController = UINavigationController(rootViewController: mainController)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()