iOS 11大型导航栏标题目标C?

时间:2017-09-17 17:10:03

标签: objective-c uinavigationbar ios11

如何使用目标C将导航栏标题设置为iOS 11中的新大版本?

swift中有很多例子,但目标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;

2 个答案:

答案 0 :(得分:7)

该财产存在;这只是一个事实。这不是“有效”,因为你没有任何东西。你不能只是坐在那里盯着它。如果您希望此属性为YES,则必须设置为YES:

self.navigationController.navigationBar.prefersLargeTitles = YES;

答案 1 :(得分:0)

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
}

了解更多详情:https://developers.facebook.com/docs/instagram-api/v2.10