视图控制器可以为其添加子类控制器
实现步骤:
1.创建两个视图控制器RootViewController
和 SecondViewController
2.在RootViewController
中添加SecondViewController
为子控制器:
注意: 可以在延展中将后者添加为属性
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// 如果你不想替换self.view 一般都写在viewDidLoad方法中
// 创建子控制器
self.secondVC = [[SecondViewController alloc] init];
// 把secondVC添加成子控制器 让rootVC去管理
[self addChildViewController:self.secondVC];
// 把secondVC,view添加到rootVC.view上
[self.view addSubview:self.secondVC.view];
// 释放
[self.secondVC release];
// 如果要给子控制器添加背景颜色 可以在子控制器类中进行设置
self.view.backgroundColor = [UIColor redColor];
// 移除视图 子控制器 按钮
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 100, 100, 100);
button.backgroundColor = [UIColor blackColor];
// 添加到rootVC.View上
[self.view addSubview:button];
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)buttonClick:(UIButton *)button
{
// 移除视图
// 移除子控制器
[self.secondVC.view removeFromSuperview];
[self.secondVC removeFromParentViewController];
}
可以在子视图控制器中看到视图周期
#import "SecondViewController.h"
@interface SecondViewController ()
@end
@implementation SecondViewController
// 视图生命周期
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"视图将要出现");
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"视图已经出现");
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
NSLog(@"视图将要消失");
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"视图已经消失");
}