Modal实现页面跳转和控制器数据传递
一.Model跳转的实现
1.新建工程
2.新建View控制器和导航控制器
(1)为拖控件,两个view一个navigation; 如图:
(2)view的“GotoTwo”按键添加Segues到Navigation 模式是“Modal”;如图
(3)设置view2(即TwoViewControllder)为NavigationController的根控制器,如图:
最终效果:
3.为view2新建相应的Cocoa Touch类“TwoViewController”
4.为View2的“Back”按键添加Action,为View1和View2的文本框添加IBOutLet;
5.实现backClick函数;
到此,为已经可以实现页面的跳转 和返回;
二.实现数据传递
从View1到View2是数据的“顺传”,利用segues的源控制器和目标控制器属性即可实现; 从View2到View1是数据的“逆传”,得用代理;
(View1对应ViewController ;View2对应TwoViewController)
(1)View1到View2: 重写ViewController的prepareForSegues方法;设置segue的目标控制器为NavigationController,因为NavigationController的根控制器是TwoViewController,所以跳转之后到了TwoViewController;
(2)View2到View1:
a. TwoViewController.h添加代理协议TwoViewControllerDelegate,协议里定义“Back”按键被点击代理方法;
b. TwoViewController.h添加代理myDelegate;
c.去到ViewContrlloer实现代理协议和代理方法,并在之前的prepareForSegue方法里将自己设置为TwoViewController的代理人;如图从上至下红圈所示
d.最后一步,回到TwoViewController,当“back”按键被点击时,要通知代理;如图