【发布时间】:2014-03-25 00:03:08
【问题描述】:
已解决
通过从“[UINavigationBar 外观]”更改为“self.navigationController.navigationBar”,我能够对实例本身进行更改,然后它也第一次加载
TLDR; UINavigationBar 字体不会改变,除非我加载另一个视图然后返回到第一个视图。
嗨
我有一个 iOS7 项目,我想更改已嵌入项目的 UINavigationBar 的外观。
我做了一些研究,发现如果我想改变 NavigationBar 的字体,我必须在 AppDelegate.m 和方法中这样做
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
所以我在这里创建了这段代码:
- (void)changeAppearanceOfNavigationBar {
// Shadow
NSShadow *shadow = [[NSShadow alloc] init];
// Nagivation bar font
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
NSForegroundColorAttributeName,
shadow, NSShadowAttributeName,
[UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0],NSFontAttributeName, nil]];
NSLog(@"Font changed");
}
我从 didFinishLaunchingWithOptions 调用这个方法
所以,这段代码对字体没有任何作用,所以我尝试用另一种方式来做。
在我的第一个视图控制器(应用程序主页面)中,我在 viewDidLoad 中执行相同的代码
- (void)viewDidLoad {
NSShadow *shadow = [[NSShadow alloc] init];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
NSForegroundColorAttributeName,
shadow, NSShadowAttributeName,
[UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0],NSFontAttributeName, nil]];
self.navigationItem.title = @"TITLEEEE";
}
我的问题中“最好的”部分来了。 viewDidLoad 中的这段代码在启动时不会改变我的 UINavigationBar 的字体,但是如果我加载另一个视图并返回,它会改变。
【问题讨论】:
标签: ios iphone objective-c fonts uinavigationbar