Xcode Swift:启用iOS11大标题导航栏

Xcode Swift:启用iOS11大标题导航栏,xcode,ios11,Xcode,Ios11,如何启用ios11大标题导航栏?这是行不通的 self.title = "Your title" if #available(iOS 11, *) { self.navigationController?.navigationBar.prefersLargeTitles = true self.navigationController?.navigationItem.largeTitleDisplayMode = .always } 请注意,

如何启用ios11大标题导航栏?这是行不通的

self.title = "Your title"
    if #available(iOS 11, *) {
        self.navigationController?.navigationBar.prefersLargeTitles = true
        self.navigationController?.navigationItem.largeTitleDisplayMode = .always
    } 

请注意,如果您想测试这一点,您至少需要:

  • Xcode 9.0
  • Mac OSX-10.12.6或更高版本
  • 带iOS 11的iPhone/iPad或Xcode 9模拟器
  • 选择ViewController
  • 编辑器->嵌入->导航控制器
  • 选择NavigationController,然后选择导航栏
  • 勾选属性检查器中的“首选大标题”

  • 将导航栏的前导、顶部和尾部约束设置为superview@JD. 你是怎么做到的?他正在拖拽导航条并将其放入他的ViewController(而不是UINavigationController)中。因此,您发布的内容将不起作用。这是因为上面假设您的ViewController位于UINavigationController中,而不是。将自定义导航栏拖动到ViewController中。您正在制作一个自定义导航栏,它只是一个UIView。出于某种原因,IB忽略了LarGetItles的复选框如果我不想将MyViewController放入UINavigationController中该怎么办?我只想要一个有大标题风格的导航栏。他所做的是从控件中拖出一个导航栏,可能是为了自定义它。
    override func viewDidLoad() {
        super.viewDidLoad()
        if #available(iOS 11, *) {
            self.navigationController?.navigationBar.prefersLargeTitles = true
        }
    }