控制器和导航控制器

来源:互联网 发布:淘宝网直通车怎么用 编辑:程序博客网 时间:2024/04/28 19:00

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
0 0
原创粉丝点击