最近的項目因爲項目須要,涉及過屢次在當前控制器上添加另外一個控制器的View問題。這裏作個筆記,爲了方便,當前視圖控制器記爲控制器1,添加的視圖記爲控制器2
第一種狀況:
1.首先,由於控制器2的視圖上有須要與用戶交互的需求,因此必定要設置2爲1的子控制器設計
ViewController *vc2 = [[ViewController alloc]init];
[self addChildViewController:vc2];code
ps:當有多個子視圖時還可能用到,子控制器的removeFromParentViewController方法對象
2.關於2的view的建立rem
由於view的建立涉及到2的viewdidload方法,因此在控制器1的方法裏面不要再從新建立vc2的view,否則建立的是另外一個對象。在這裏只須要根據須要設計vc2的view的frame就能夠了。以下:it
vc2.view.frame = CGRectMake(0, 108, kScreenWidth, kScreenHeight-108);table
第二種狀況:
就先別搞那麼複雜先,就這樣完成了一個UITableViewController的建立class
而後咱們看一下,是否有咱們想要的效果:
咱們是確實能將這個tableView添加上去了,可是出現了不能顯示數據的問題。變量
咱們再看一下效果:
只有這樣才能顯示咱們的Cell的數據引用
因此得出一個結論:只要view在,view所在的控制器必須得在,這樣才能保證view內部的數據和業務邏輯正常方法