Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;应用程序窗口应具有根视图控制器;启动后立即添加视图时的消息,仅限iOS 9_Ios_Uiviewcontroller_Ios9_Uiapplicationdelegate - Fatal编程技术网

&引用;应用程序窗口应具有根视图控制器;启动后立即添加视图时的消息,仅限iOS 9

&引用;应用程序窗口应具有根视图控制器;启动后立即添加视图时的消息,仅限iOS 9,ios,uiviewcontroller,ios9,uiapplicationdelegate,Ios,Uiviewcontroller,Ios9,Uiapplicationdelegate,我的应用程序在启动时发送一个请求,并在成功时向用户显示一条简短消息。不幸的是,我当前的实现似乎与ios9的视图生命周期范例相冲突。我明白了 应用程序窗口应在应用程序启动结束时具有根视图控制器 应用程序崩溃了。该应用程序在iOS 7和iOS 8上运行良好 通过在线搜索,在为应用程序的UIWindow建立根视图控制器之前,尝试将消息视图添加到视图层次结构时,似乎可能会发生这种情况,但这里的情况似乎不是这样,请参见下文 以下是UIApplicationLegate实现的摘录: - (BOOL)appl

我的应用程序在启动时发送一个请求,并在成功时向用户显示一条简短消息。不幸的是,我当前的实现似乎与ios9的视图生命周期范例相冲突。我明白了

应用程序窗口应在应用程序启动结束时具有根视图控制器

应用程序崩溃了。该应用程序在iOS 7和iOS 8上运行良好

通过在线搜索,在为应用程序的
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"];

可能与这个问题有关。你也可以检查这个线程