现在的位置: 首页 > 综合 > 正文

控制器和导航控制器

2018年05月26日 ⁄ 综合 ⁄ 共 1335字 ⁄ 字号 评论关闭

tip:

ios6 ios7 主窗口和次窗口中文本输入框不同,

ios6以前,次窗口不能响应键盘的输入,只有主窗口可以
ios7ios8,都可以响应

创建控制器的几种方式:
1.无storyboard,无xib
//创建控制器
CHViewController *vc = [[CHViewController allco] init];
//设置window的根控制器
self.window.rootViewController = vc;
//让UIWindow显示出来
[self.window.makeKeyAndVisible]

2.有storyboard
//加载名字叫做Test的UIStoryboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
//创建storyboard中箭头指向的控制器
CHViewController *vc = [storyboard instantiateInitialViewController];
//设置window的根控制器
self.window.rootViewController = vc;
//让UIWindow显示出来
[self.window.makeKeyAndVisible]

3.有xib
CHViewController *vc = [[CHViewController alloc] initWithNibName:@"one" bundle:nil];
//设置window的根控制器
self.window.rootViewController = vc;
//让UIWindow显示出来
[self.window.makeKeyAndVisible]

4.有同名xib
5.有同名,然后去掉名字中Controller的xib
CHViewController *vc = [[CHViewController alloc] iniit];

6.重写控制器的loadView方法
如果重写了控制器的loadview方法, 就不会去加载创建同名去掉controller的xib和同名的xib, 而是创建一个空白的veiw做为控制器的veiw

导航器添加控制器的几种方法:
CHOneViewController *one = [[CHOneViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:one];
self.window.rootViewController = nav;

第一种:
[nav pushViewController:one animate:YES];
获取子控制器:
nav.viewControllers; == nav.childViewControllers;

第二种:
[nav addChildViewController:one];

第三种:
nav.viewControllers = @[one]
注意该属性是只读的
nav.childViewControllers = @[one];

获取栈顶的控制器:
nav.topViewController

抱歉!评论已关闭.