父子控制器
父子控制器
如果要将控制器A的view添加到控制器B的view上的,要先将B设置为A的子控制器。
在导航控制器中,从一个控制器跳转到另一个控制器之后,系统会自动显示一个返回按钮,供我们返回起始控制器。而如果没在导航控制器中,从一个控制器跳转到另一个控制器的方法就时model跳转,这时候,如果没有将控制器设置为父子控制器,那么跳转之后,将会没有返回按钮供我们使用。
界面搭建小练习
示例图
![](https://img.haomeiwen.com/i20116762/890d128441fee450.png)
界面功能,有导航栏,导航栏下面有一条scrollView,里面布局若干的按钮,可以左右滑动,点击不同的按钮切换到不同的界面,也可以通过左右滑动界面切换视图,模仿tabbar的原理。
首先创建按钮的滚动视图,点击按钮切换界面视图也要依靠scrollView来完成,创建两个scrollView,如图。
![](https://img.haomeiwen.com/i20116762/f4688c91357c19de.png)
一共是六个界面,我们自定义六个控制器,然后将他们设置为viewcontroller的子控制器,并设置上标题,后面设置按钮的title会用到。
![](https://img.haomeiwen.com/i20116762/76f0aac0b8ae8b48.png)
添加按钮,之前已经添加好子控制器了,现在就通过self.childViewControllers数组就能获取到各个子控制器了,标题也从这里获取。根据数组的元素数量动态创建按钮 。并将创建的按钮保存在一个自己创建的数组btnArray中,用于后面方便获取按钮,做一些操作。
![](https://img.haomeiwen.com/i20116762/4d61dd4cfbe93423.png)
监听按钮的点击,改变按钮的颜色等属性。然后通过点击按钮的tag值,在self.childViewControllers数组中获取到相应的控制器,将view添加到viewScrollView中,计算好x值,添加之后,移动viewScrollView将添加的view显示到视野中。
![](https://img.haomeiwen.com/i20116762/9856d7cd2a5b113e.png)
前面完成了通过按钮的点击切换界面,现在要完成通过左右滑动界面来切换控制器的view,并同时改变按钮的选中状态。
![](https://img.haomeiwen.com/i20116762/ccb41c893b5c4124.png)
这样简单的界面逻辑搭建就完成了,相应控制器的view的显示就分别在相应的控制器中编写代码就可以了。