OStack程序员社区-中国程序员成长平台

标题: ios - 应用程序启动时在其他之上显示 View Controller 在 ios8 中不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 02:14
标题: ios - 应用程序启动时在其他之上显示 View Controller 在 ios8 中不起作用

我使用以下代码:

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions { 
    ...
    window.rootViewController = self.viewController;
    [window makeKeyAndVisible];

    if (self.requireLogin){
        [self.viewController presentViewController:self.loginViewController animated:NO completion:nil];
    }
}

所以我将 loginViewController 推到 viewController 之上。这在 8 之前的 iOS 上可以正常工作,但在 iOS 8 上,您可以在很短的时间内看到 viewController。

有没有简单的方法在 iOS 8 上显示 View Controller 而不显示其背后的内容?

编辑: 在日志中注意到它还有“开始/结束外观转换的不平衡调用”,所以认为 ios 8 在 self.viewController 上运行了一些动画。有没有办法阻止它动画?



Best Answer-推荐答案


试试这个最初隐藏,然后取消隐藏。

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions {
    ...
    window.rootViewController = self.viewController;

    // Hide initially
    window.rootViewController.view.hidden = YES;

    [window makeKeyAndVisible];

    if (self.requireLogin){
        [self.viewController presentViewController:yourloginViewController animated:NO completion:^{

            // Unhide now
            window.rootViewController.view.hidden = NO;

        }];
    }
}

根据响应,似乎没有显示启动画面,所以我更好的建议是

  1. 正如您知道是/否来显示登录 View (基于 self.requireLogin),您将登录 View Controller 设置为窗口的 rootviewcontroller。

    if (self.requireLogin){
    
        window.rootViewController = yourLoginViewController;
    
    }
    else{
    
        window.rootViewController = normalViewController;
    
    }
    
  2. 仍然需要使用与你相同的策略,然后在普通 View Controller 上添加一个 UIImageView,然后呈现登录 View Controller 。

选择权在你手中

关于ios - 应用程序启动时在其他之上显示 View Controller 在 ios8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033321/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4