【问题标题】:Loading Storyboard from AppDelegate leaves black space on window从 AppDelegate 加载 Storyboard 会在窗口上留下黑色空间
【发布时间】: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


【解决方案1】:

这可能是因为您没有 Default-568h@2x.png 启动图像。

尝试添加一张或使用资产目录中的启动图片,并使用 iPhone 5 尺寸的一张。

(也就是:self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 是必要的,它会返回您所期望的吗?)

【讨论】:

  • 感谢您的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2015-01-20
  • 1970-01-01
  • 2021-10-02
  • 2019-07-24
相关资源
最近更新 更多