PDF 课件和源代码下载地址:
作者回复: 1. 创建项目,使用默认的Storyboard,并且运行成功。 2. 在xcode左侧文件导航中,删除Main.stroyboard文件 3. 在xcode右侧 General中,调整MainInterface到LaunchScreen.storyborad 4. 在Info.plist中,删除Application Scene Manifest中Scene Configuration->Application Session Role->item 0->Stroyboard Name这行 5. 在SceneDelegate文件willConnectToSession函数中,添加和视频中类似的代码 UIWindowScene * windowScene = (UIWindowScene *)scene; _window = [[UIWindow alloc] initWithFrame:windowScene.coordinateSpace.bounds]; _window.windowScene = windowScene; [_window setRootViewController:[[UIViewController alloc] init]]; [_window makeKeyAndVisible]; 整体上看,其实和之前的操作相同,就是删除MainStory以及对应的引用关系,然后在Scene中加入自己的window和rootController。可以对比看下哪一步没有做哈~如果还是找不到问题,可以留言上传下代码,我帮你看下
作者回复: 👍
作者回复: 👍👍👍
作者回复: 可以使用SubView来实现。目前这两种方式 无论哪种都需要自定义的处理下,才能做到和主流App一样的交互,基本都不是原生的体验了
作者回复: 这样来说比较简单,不用处理动画效果。
作者回复: 示例工程应该是可以使用XCode11跑起来的,系统会向下兼容,并且主流的App也都要支持非iOS13的设备。那么对于在iOS13中新建工程,单独的根据视频删除storyboard是不行的。在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置。简单的来说如果不使用Main.storyboard,就需要把 info.plist 中 Main.storyboard相关的设置全部删除,并且在SceneDelegate中自己实现window。SceneDelegate和Appdelegate这部分在iOS13中也有了变化,可以参考对应课程下方的留言,或者直接看https://developer.apple.com/videos/play/wwdc2019/42 这个session
作者回复: 是的。iOS13之后,appdelegate的指责发生了变化,具体的可以参考https://developer.apple.com/videos/play/wwdc2019/42 这个session。 简单的说和UI生命周期相关的回调都交给了SceneDelegate 这个delegate,而appdelegate主要负责 app 生命周期相关的回调。对于window来说,作为一个特殊的UI,也自然的变成了SceneDelegate的一个property,我们可以在SceneDelegate的头文件中找到它,并在willConnectToSession这个函数中使用。同时在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置
作者回复: 这边使用示例工程暂时没有发现,如果是你实现的代码,方便的化上传下代码,我帮你看下。
作者回复: 在删除main.storyboard的时候,在和课程中相同的删除操作之上,也需要删除在info.plist中的Application Scene Manifest中对应storyboard的默认设置。简单的来说如果不使用Main.storyboard,就需要把info.plist和Main.storyboard相关的设置全部删除,并且在SceneDelegate中自己实现window。SceneDelegate和Appdelegate这部分在iOS13中也有了变化,可以参考下面的留言,或者直接看https://developer.apple.com/videos/play/wwdc2019/42 这个session
作者回复: 是的,iOS13的问题可以看下本节课的留言哈。