iOS11 大导航栏标题Objective C?

iOS 11 Large Navigation Bar title Objective C?

如何使用 objective C 使导航栏标题成为 iOS 11 中的新大版本?

swift 中有很多示例,但是 none objective c。

Apple 建议

 @property(nonatomic, readwrite, assign) BOOL prefersLargeTitles;

但这不起作用。

我的密码是

[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO];
[self.navigationController.navigationBar setBackgroundImage:[[UINavigationBar appearance] backgroundImageForBarMetrics:UIBarMetricsDefault] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.barStyle=UIBarStyleDefault;

属性存在;那只是一个事实。不是 "working" 因为你没有 任何事。你不能只是坐在那里盯着看。如果你想让这个 属性 为 YES,你必须 设置 为 YES:

self.navigationController.navigationBar.prefersLargeTitles = YES;
if #available(iOS 11.0, *) {
    navigationController?.navigationBar.prefersLargeTitles = true
    navigationController?.navigationBar.topItem?.title = "Hello"
    navigationController?.navigationItem.largeTitleDisplayMode = .automatic

    let attributes = [
        NSAttributedStringKey.foregroundColor : UIColor.red,
        ]

    navigationController?.navigationBar.largeTitleTextAttributes = attributes
} else {
    // Fallback on earlier versions
}

更多详情:http://iosrevisited.blogspot.in/2017/09/navigation-bar-with-large-titles-and.html