美文网首页
Xcode11 新建项目注意事项

Xcode11 新建项目注意事项

作者: LoveBe | 来源:发表于2021-03-17 11:19 被阅读0次

    Xcode11 对应的iOS系统为 iOS13。

    Xcode11 新建项目时会多出一个SceneDelegate类,这个类里面的代码只有 iOS13系统的手机才会执行。

    当启动方式采用手动创建window设置rootViewController时,Xcode11的window初始化方式与以前有所不同。

    方式一

    Xcode11 需要在 SceneDelegate类里面给window添加rootViewController, SceneDelegate里面window是已经创建好了的,不需要再次创建。

    #import "SceneDelegate.h"
    #import "ViewController.h"
    
    - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
        self.window.rootViewController = [[ViewController alloc] init];
        [self.window makeKeyAndVisible];    
    
        ///或者使用下面的代码
        /*
        self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen  mainScreen].bounds.size.height)];
        self.window.windowScene = (UIWindowScene *)scene;
        self.window.rootViewController = [[ViewController alloc] init];
        [self.window makeKeyAndVisible];
        */
    }
    

    兼容iOS13以下的版本,需要在AppDelegate中创建window设置rootViewController

    #import "AppDelegate.h"
    #import "ViewController.h"
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        if (@available(iOS 13,*)) {
         
        } else {
            self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
            self.window.rootViewController = [[BaseTabBarController alloc] init];
            [self.window makeKeyAndVisible];
        }
      
        return YES;
    }
    

    ⚠️注意:在运行完成后,页面是全黑,因为没有给ViewController这个页面设置背景色导致的,不是代码的问题。

    方式二

    参照以往的AppDelegate里面

    删除SceneDelegate代理文件 (可选)
    删除 Info.plist里面的Application Scene Manifest配置(一定要删除)
    删除 AppDelegate代理的两个方法:
    application:configurationForConnectingSceneSession:options:
    application: didDiscardSceneSessions:
    这两个方法一定要删除,否则使用纯代码创建的Window和导航控制器UINavigationController不会生效。

    相关文章

      网友评论

          本文标题:Xcode11 新建项目注意事项

          本文链接:https://www.haomeiwen.com/subject/tibscltx.html