iOS开发精选集iOS在iOS开发的道路上越走越远

认识UIViewController

2016-07-09  本文已影响740人  longjianjiang

UIViewController在开发中每天都要打交道的,通常我们用它来管理页面的View,现在就系统的研究下我们常说的MVC中的C。

创建UIViewController

三种方式:

UIViewController *vc = [UIViewController new];
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"xxx" bundle:nil];
    UIViewController *vc = [sb instantiateInitialViewController];
    UIViewController *vc = [[UIViewController alloc] initWithNibName:@"xxx" bundle:nil];

创建UIViewController的View

我们知道每个控制器都有一个页面也就是常写的self.view。先看一张草图:

Snip20160709_1.png
上图描述了控制器View加载的过程,下面给出几点建议

UIViewController生命周期方法

看图说话:


生命周期方法.png

由图可以清楚的看到控制器View的由生到死,两点注意:

UIViewController层级关系

LJOneViewController *oneVC = [LJOneViewController new];
self.window.rootViewController = oneVC;

UIViewController中View的理解及作用

Snip20160709_2.png
图中每个控制器强引用Root View,然后Root View对通过[self.view addSubview:xxx];的进行强引用,这也就是我们通过Storyboard拖线的控件默认是weak弱引用。 Snip20160709_3.png
此时UISplitViewController的View管理着两个子控制器的View,而两个子控制器的View则管理对应的Root View的子View,最终两个子控制器View上的内容仍然放在UISplitViewController的View这个容器中显示。

尾巴

Sketch画图感觉飞起来了!

上一篇 下一篇

猜你喜欢

热点阅读