控制器之间的数据传递
控制器之间的数据传递主要有两种情况,顺传和逆传
列表内容
调用[self performSegueWithIdentifier:@”” sender:nil];这个方法就会跳转到另外一个控制器,
但是在控制器类里面可以重写一个方法,在调用这个方法之后调用的。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
这个方法是系统调用的,当系统执行完prepareSegueWithIdentifier方法之后就会调用这个方法。
而且这个方法的参数segue是prepareSegueWithIdentifier这个方法的segue。
这个我们就可以获取segue,从而获取得到destinationViewController,也就是目标控制器
最后就可以达到我们想要的效果。
利用performSegueWithIdentifier:sender:
[self performSegueWithIdentifier:@”login2contacts” sender:nil];
//这个self是来源控制器
1,根据identifier去storyboard中找到对应的线,新建UIStoryboardSegue对象
设置Segue对象的sourceViewController(来源控制器)
设置Segue对象的destinationViewController(目标控制器)
2,调用sourceViewController的下面的方法,做一些跳转前的准备工作并且传入创建好的Segue对象
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
//这个sender是当初performSegueWithIdentifier:sender中传入的sender
3,调用Segue对象的-(void)perform;方法开始执行界面的跳转
取得sourceViewController所在的UINavigationController
调用UINavigationController的push方法将des压入栈中,完成跳转
如何是实现控制器的数据往回传递。
一般都是通过代理来是实现数据的传递