iOS开发学习笔记——控制器(UIViewController)

来源:互联网 发布:linux curl 断点续传 编辑:程序博客网 时间:2024/04/30 02:14

UIViewController基本了解

一、     基本概念

1、          控制器管理着App所需要的数据model,同时负责控制数据显示到相应的视图

2、          UIViewController是控制器的根类,常见子类:UITableViewController、UINavigationViewController等

3、          创造控制器的方法(三个),实例化初始化方法不同

a、 通过代码创建控制类,实例化直接调用init.

b、 通过XIB创建,实例化调用initWithNibName.

c、【常用】通过StoryBoard创建,应该给它指定StoryBoardID,实例化系统默认调用initWithCoder,但是自己在生成对象时,间接调用UIStoryBoard的API,首先获取到相应的StoryBoard,再根据identity在StoryBoard中实例化某个控制器(前提是给该控制器分配了Storyborad ID),同时需要强转以下类型。

//LL:这里需要注意下Storyborad中产生的控制器不像Xib文件的一样,不仅控制类要相关联待,如果需要在代码中使用,还需要显示访问Storybord文件。    //1.获取StoryBoard    UIStoryboard *stotyboard = [UIStoryboard  storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];    //2.从storyboard中获取某个控制器    S_TalkViewController *VC = (S_TalkViewController*)[stotyboard instantiateViewControllerWithIdentifier:@"talkViewController"];//强制转换可以去掉(<span style="font-family: Arial, Helvetica, sans-serif;">(S_TalkViewController*)</span>)    [self presentViewController: VC animated:YES completion:^{        NSLog(@"即将跳转到子页面");    }];


4、 【重点】代码的优先级高于其他方式

具体创建教程宏创学院»UIViewController介绍:1-创建控制器

二、     控制器的切换

1、     使用StoryBoard切换

a、          切换的关联一般放在可交互控件上(如按钮)

b、          如何连接(Segue)到另一个控制器了?【参考步骤】按住ctl健拖动到下一个控制器,并选则Segue类型【Segue类型区别】

c、           当实现跳转时,会自动调用控制器的prepareForSegue方法(在相应控制器类中写这个方法),prepareForSegue方法中的segue参数,包含了3个重要属性,分别为:segue的ID,源控制器(sourceViewController)以及目标控制器(destinationViewController),在开发过程中,经常会涉及到,prepareForSegue方法中实现数据在源控制器以及目标控制器之间传递数据

2、     使用代码切换(如果多个切换,可用堆栈原理理解)

a、          控制器器要存在(实例化,特别是在StoryBoars控制器创建,要在这里获取)

b、          使用presentViewController方法切换到下一个控制器,原控制器隐藏

c、           使用dismissViewControllerAnimated方法返回原控制器(第二个控制器销毁了)

 更多切换方式参考:页面切换的四种方式

三、     多个控制器的嵌套

多控制器的嵌套:通过父控制器管理(跳转)多个子控制器,以方便在页面之间跳转。

学习内容来源宏创学院»UIViewController介绍:5-控制器嵌套

四、     UIWindow、UIView、UIViewController的关系【重点理解】

学习内容来源宏创学院»UIWindowUIViewUIViewController的关系

 

0 0
原创粉丝点击