UIKit-基础

当在AppDelegate生命周期内,如果出现新的窗口被请求的时候会自动调用AppDelegate的configurationForConnectingSceneSession方法对新的UIScene进行配置,同时就会创建新的SceneDelegate,在SceneDelegate被创建后就会调用SceneDelegate的willConnectToSession方法,这个方法可以选择性配置创建的UIWindow,然后将UIScene和UIWindow连接上,如果使用了storyboard则这个window的属性也会自动被初始化和连接到scene上。

当scene进入后台或者被丢弃时会调用sceneDidDisconnect,会释放任何和scene有关的资源,这些资源可以在下次scene重新连接的时候重新创建

storyboard

想要指定storyboard显示的view 目前还没确定

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *rootViewController = [storyboard instantiateInitialViewController];

instantiateInitialViewController这个方法会自动创建并返回 storyboard 文件中的第一个视图控制器,要求 storyboard 文件中必须有一个标记为 “Is Initial View Controller” 的视图控制器。这个属性可以在 storyboard 中的视图控制器属性检查器中进行设置。如果 storyboard 中没有设置初始视图控制器,或者设置了多个初始视图控制器,那么 instantiateInitialViewController 方法将返回 nil

UIWindowSceneDelegate

这个协议里面约定了一定有一个window属性,所以在创建新项目时系统自动创建的SceneDelegate里面会自带@property (strong, nonatomic) UIWindow * window;这个也没办法改名,比如改成mainWindow都是不行的,所以应该是改不了这个window,默认就是用这个

UINavigation

相当于一个viewController的stack,用于管理view的显示。在window连接了一个NavigationController后会显示堆顶的viewController的view。所以如果要显示一个view就push进去,不要了就pop出来

显示View的方法

presentViewController,这种方法如果显示动画 view是从下往上显示出来的
pushViewController 是从右往左显示出来

创建时必须要有一个viewController作为rootViewController。

你可能感兴趣的:(UIKit,cocoa)