昨天放学,和老师聊天,他说出去以后,很少有项目用storyboard,一般都是纯代码,于是想把之前学过的模仿storyboard的过程复习一下。
首先,我们需要来到AppDelegate.m这个文件中的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
这个方法中,写入如下代码
UIWindow* window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; [window makeKeyAndVisible]; _window = window; ViewController* controller = [[ViewController alloc]init]; window.rootViewController = controller; return YES;
需要注意的是:
1、要注意导入ViewController.h文件
2、对于ViewController的操作,在对应的.m文件中进行。不要写到这个方法中。
下面,让我们来说一下这里程序都做了什么
1、声明一个UIWindow对象,这里需要注意的是,一定要给UIWindow对象设置frame,否则,无法显示
2、将窗口设置为主窗口,并显示,同样,如果不这样设置,运行得到的是一片黑
3、将成员变量指向这个创建的对象
4、创建一个controller对象
5、将window的根控制器设置为刚才创建的那个控制器
6、返回
下面让我们在扩展一下:
1、app启动过程:
先执行main.m,这里执行了UIApplicationMain,这里第三个参数指定UIApplication类或子类,如果为nil则默认为UIApplication,第四个为代理类名。这里使用了反射机制来获取类名。之后会加载info.plist文件,然后会判断,是否需要storyborad,如果有,则加载,如果没有,则通过上述的方法进行创建。所以,这里我们不能再创建名字包含info的plist文件
2、UIApplication对于每一个app都只有一个,并且是单例
3、这里我们引用一个MJ的图片,来进行说明一下各个类之间的关系
时间: 2024-12-20 08:32:03