父子控制器相关

父子控制器:导航控制器,UITabBarViewController等。

父子控制器的设计原理:a控制器的View成为b控制器的子控件,那么a控制器必须成为b控制器的子控制器。否则,(1)用属性来保存a控制器不会立刻销毁成为全局变量,控制器没有销毁,可以处理事件,但是没有成为b的子控制器是无法push modal dismiss等。(2)将b控制器添加为a控制器的子控制器,可以处理事件,也可以跳转等。 push、modal等操作控制器和它的子控制器都可以调用。

子控制器都有一个addChildViewControllers的数组。

self.navigationController原理:首先去判断自己是不是导航控制器的子控制器,如果不是,再去判断父控制器是不是导航控制器的子控制器,如果是,可以拿到self.navigationController。

modal的效果是从下往上钻出来。

//dismissViewControllerAnimated:谁调用,dismiss谁

//首先会判断下自己是不是modal出来的,如不是去寻找自己的父控制器是不是modal出来,有就会dismiss它


父子控制器相关_第1张图片


父子控制器相关_第2张图片



如图所示的控件添加约束方法:这样的有几个一样的控件最好放在一个UIView上面。四个约束可以确定位置。第一个btn添加上下左右0000的约束,第二个因第一个有了与第二个btn左侧距离为0的约束,所以左边不需要约束,只要添加上又00,并且与第一个等高等宽。第二个btn需要设置上又00,与第二个btn等高。

三个UIbutton

xib或者stroyBoard时,最好框架在里面搭,控件的具体设置用代码实现,比较方便之更改。

__func__:打印出当前调用的方法名。

ARC管理原则:谁创建,谁释放。一旦没有强引用了就会被销毁。

在开发中设置UIviewController的属性(颜色、frame)时,最好等控制器加载完毕之后在在相应的控制器的ViewDidLoad方法里面设置,而不要在初始化的地方设制。否则导致代码乱,有时候设置无效。

每一个控制器都有一个title属性,可以保存一个title。

你可能感兴趣的:(父子控制器相关)