&引用;应用程序窗口应具有根视图控制器;启动后立即添加视图时的消息,仅限iOS 9
我的应用程序在启动时发送一个请求,并在成功时向用户显示一条简短消息。不幸的是,我当前的实现似乎与ios9的视图生命周期范例相冲突。我明白了 应用程序窗口应在应用程序启动结束时具有根视图控制器 应用程序崩溃了。该应用程序在iOS 7和iOS 8上运行良好 通过在线搜索,在为应用程序的&引用;应用程序窗口应具有根视图控制器;启动后立即添加视图时的消息,仅限iOS 9,ios,uiviewcontroller,ios9,uiapplicationdelegate,Ios,Uiviewcontroller,Ios9,Uiapplicationdelegate,我的应用程序在启动时发送一个请求,并在成功时向用户显示一条简短消息。不幸的是,我当前的实现似乎与ios9的视图生命周期范例相冲突。我明白了 应用程序窗口应在应用程序启动结束时具有根视图控制器 应用程序崩溃了。该应用程序在iOS 7和iOS 8上运行良好 通过在线搜索,在为应用程序的UIWindow建立根视图控制器之前,尝试将消息视图添加到视图层次结构时,似乎可能会发生这种情况,但这里的情况似乎不是这样,请参见下文 以下是UIApplicationLegate实现的摘录: - (BOOL)appl
UIWindow
建立根视图控制器之前,尝试将消息视图添加到视图层次结构时,似乎可能会发生这种情况,但这里的情况似乎不是这样,请参见下文
以下是UIApplicationLegate
实现的摘录:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[...]
self.window.rootViewController = [[MyViewController alloc] init];
[...]
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[MyDataManager sendRequestWithCompletion:^{
// Displays a message with MTStatusBarOverlay
[self showSuccessOverlay];
}];
}
application:didfishlaunchingwithoptions:
在applicationdidebecomeactive:
之前被调用,因此似乎永远不会出现建立rootViewController
的问题
为什么会这样?导致应用程序崩溃的iOS 9有什么不同?
MTStatusBarOverlay
是UIWindow
的一个子类,因此在应用程序启动期间实例化一个会将UIWindow
添加到启动完成时iOS检查填充的rootViewController
的列表中
在使用覆盖之前,我可以通过实例化和分配一个虚拟控制器来解决这个问题,如下所示:
[MTStatusBarOverlay sharedInstance].rootViewController = [UIViewController new];
[[MTStatusBarOverlay sharedInstance] postMessage:@"Message"];
可能与这个问题有关。你也可以检查这个线程