【发布时间】:2014-12-28 13:53:47
【问题描述】:
我正在从AppDelegate 启动Storyboard,但屏幕顶部和底部出现黑色空间。这是我的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
UIViewController *vc =[storyboard instantiateInitialViewController];
// Set root view controller and make windows visible
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
这是它的样子:
【问题讨论】:
-
是否有理由使用所有代码而不是设置初始视图控制器(在情节提要中)并让默认应用初始化加载主情节提要?
-
@PhillipMills :是的。我希望我的导航标题以白色显示。我正在使用 [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}]; [[UINavigationBar 外观] setTintColor:[UIColor whiteColor]];我在 AppDelegate 中设置的。但是,故事板首先启动,因为它是启动屏幕。当它启动时,导航上会出现黑色标题。然后调用 AppDelegate 将标题设置为白色。因此,为了避免在启动时改变导航标题的颜色,我正在这样做。
-
@PhillipMills :如果你能帮我从故事板本身设置导航标题颜色,我不会做这一切。
-
将
appearance设置放在应用程序委托或第一个视图控制器的+ (void)initialize方法中似乎可以工作,并让自动机制负责故事板/控制器/窗口连接。跨度> -
@PhillipMills :刚刚尝试了您的建议,但仍然面临同样的问题。似乎在 Storyboard 启动后调用了初始化。
标签: ios iphone storyboard appdelegate