美文网首页前端技术交流收藏swift
关于xcode11新建项目黑屏那点事 swift and obj

关于xcode11新建项目黑屏那点事 swift and obj

作者: ZL_龙 | 来源:发表于2019-09-28 11:28 被阅读0次

    参考自:https://blog.csdn.net/wuyangyang555/article/details/101285410

    不知道有没有小伙伴跟我一样xcode11新建项目之后,ios13+的真机或者模拟器黑屏呢?
    相信有些小伙伴忍不住升级了xcode11,然后高兴的新建一个项目,然后com+r,咦,怎么黑屏了?(ps:手写代码入口),其实不然,我们仔细看看项目里面,是不是除了有APPdelegate.h和APPdelegate.m文件和Scenedelegate.h和Scenedelegate.m文件呢? swift : Scenedelegate.swift 如图1


    图1.png

    原来是因为iOS13的生命周期发生了改动,大家都知道,应用生命周期这个东西,一直到目前的iOS 12这个版本都是在AppDelegate里头(也就是UIApplicationDelegate里面),但是ios13版本包括之后,AppDelegate(UIApplicationDelegate)控制生命周期的行为交给了SceneDelegate(UIWindowSceneDelegate)

    // MARK: UISceneSession Lifecycle

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
      
        
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }
    
    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
       
    }
    
    图二.png

    翻阅苹果官方文档说
    In iOS 13 and later, use UISceneDelegate objects to respond to life-cycle events in a scene-based app.

    这个场景呢,如果不使用ipad的多窗口就不建议使用

    接下来方法来了

    1.首先我们去到info.plist,删掉如下图箭头所示

    image.png

    2.项目目录,删掉Scenedelegate.h和Scenedelegate.m这两个文件 swift删除Scenedelegate.swift。

    3.咱们再进入APPdelegate.m,注释或者删掉图示里面内容

    image.png

    4.最后一步,别忘了在APPdelegate.h里面添加window属性

    obj-c
    @property (strong, nonatomic) UIWindow * window;

    swift
    var window: UIWindow?

    5.大功告成

    相关文章

      网友评论

        本文标题:关于xcode11新建项目黑屏那点事 swift and obj

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