关于Container View
2015-10-04 本文已影响5927人
smalldu
![](https://img.haomeiwen.com/i954071/2bde9557b17759e4.jpg)
Container View 是用来在一个试图控制器上添加子试图控制器的,原谅我是个菜鸟。我是昨天才知道这个东西的。以前一直在想 , 一个控制器上为啥不能放多个控制器控制不同的部分呢。。。。。有多少和我一样不知道的。。
昨天做动画时,做一个侧拉菜单的时候用到这个。有了这个应该可以做出很多种菜单。
下面看看那个侧拉菜单的效果
代码下载地址: https://github.com/smalldu/IOS-Animations
AnimationDemo8
![](https://img.haomeiwen.com/i954071/efb1e5efb24ce0bf.gif)
Container View 用法很简单 , 直接当前view上拖一个Container View上去
![](https://img.haomeiwen.com/i954071/e11ae8d6e35d41d2.png)
这里拖上一般都会在旁边自动多出个viewController,以可以留着也可以删掉 自己搞一个控制器上去
![](https://img.haomeiwen.com/i954071/f2eb570b3d49bfc6.png)
![](https://img.haomeiwen.com/i954071/a0f27d11ec5c701b.png)
这样就可以将Container View和Controller 关联起来
然后设置identifier
![](https://img.haomeiwen.com/i954071/1655364593d56030.png)
最后在主Controller中(也就是最底部的容器Controller)中得到这两个viewController
var menuVc:MenuViewController?
var detailVc:DetailVIewController?
override func viewDidLoad() {
super.viewDidLoad()
print(detailVc?.view.backgroundColor)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "DetailView" {
detailVc = segue.destinationViewController as! DetailVIewController
}
if segue.identifier == "MenuView" {
menuVc = (segue.destinationViewController as! MenuViewController)
}
}
得到了就自由发挥了 , 本文主要讲Container View的基本用法。(想必大神都知道这个)