詳解SceneDelegate和Man.storyboard的刪除與保留關(guān)系

緊接3.8特殊節(jié)日的文章Xcode 11新建項(xiàng)目,繼續(xù)學(xué)習(xí)
自xcode11新增SceneDelegate后,SceneDelegate與Man.storyboard該如何處理:

1. 第一種情況,刪除SceneDelegate,但保留Man.storyboard:

  • 刪除info.plist中的Application Scene Manifest一項(xiàng)
  • 在AppDelegate.h中添加window屬性@property (strong, nonatomic) UIWindow *window;
  • 刪除AppDelegate.m中新增的兩個(gè)UIScene方法
  • 刪除UISceneDelegate類文件
    切記要在AppDelegate.h中添加window屬性,否則Man.storyboard無(wú)法正常加載

2. 第二種情況,刪除SceneDelegate且刪除Man.storyboard:

  • 刪除info.plist中的Application Scene Manifest一項(xiàng)
  • 在AppDelegate.h中添加window屬性@property (strong, nonatomic) UIWindow *window;}
  • 刪除AppDelegate.m中新增的兩個(gè)UIScene方法
  • 刪除UISceneDelegate類文件

  • 刪除Main.storeboaard文件
  • 項(xiàng)目TARGETS->General->Main Interface置為空
  • 刪除info.plist中Main storyboard file base name一項(xiàng)
  • AppDelegate.m中導(dǎo)入目標(biāo)頭文件,在didFinishLaunchingWithOptions方法中添加目標(biāo)類:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc] init];
    self.window.frame = [UIScreen mainScreen].bounds;
    self.window.backgroundColor = [UIColor whiteColor];

    ViewController * vc = [[ViewController alloc]init];
    self.window.rootViewController = vc;
    [self.window makeKeyAndVisible];
    return YES;
}

3. 第三種情況,保留SceneDelegate但刪除Man.storyboard:

  • 項(xiàng)目TARGETS->General->Main Interface置為空
  • 刪除info.plist中Main storyboard file base name一項(xiàng)
  • 刪除info.plist中Application Scene Manifest -> Scene Configuration -> Application Scene Role -> Item 0 -> Storyboard name一項(xiàng)
  • SceneDelegate.m中導(dǎo)入目標(biāo)頭文件,在willConnectToSession方法中添加目標(biāo)類:
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
    if ([scene isKindOfClass:[UIWindowScene class]]) {
        UIWindowScene *windowScene = (UIWindowScene*)scene;
        self.window = [[UIWindow alloc] initWithWindowScene:windowScene];
        self.window.frame = [UIScreen mainScreen].bounds;
        self.window.backgroundColor = [UIColor whiteColor];

        ViewController * vc = [[ViewController alloc]init];
        self.window.rootViewController = vc;
        [self.window makeKeyAndVisible];
    }
    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容