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”按键被点击时,要通知代理;如图

 

原文地址:https://www.cnblogs.com/ajilisiwei/p/Modal.html