ios-Segue

来源:互联网 发布:灰鸽子远程控制源码 编辑:程序博客网 时间:2024/05/29 18:11

ios中Segue分为自动型和手动型,自动型就是在storyboard中按住control键直接从控件拉到目标控制器,这条线就是Segue。自动型一般是在你点击了某个控件之后,不需要进行任何判断了,一定要跳转到下一个界面,最好就用自动型的Segue.

手动型就是按住control键从来源控制器拖线到目标控制器,手动型的Segue需要设置一个标识符,在需要的时候,使用perform方法来执行对应的Segue,注意Segue必须要由来源控制器来调用。我们什么时候用手动型的,就是在点击了某一个控件之后需要判断一些条件后才能跳转到下一个界面的就用手动型的Segue

[self performSegueWithIdentifier:@"hahaha" sender:nil];

上面的这个方法是会根据identifier去storyboard中找到对应的线,去新建UIStoryboardSegue对象,然后设置Segue对象的来源控制器,然后再新建并且设置Segue对象的目标控制器,我们这里为什么是新建,因为storyboard中的控件不是一加载就被创建了,而是用到的时候才会被创建。

我们在使用调用上面的方法的时候都会去执行这个方法-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender,只要storyboard中对应的Segue的那条线都会去执行这个方法。这个方法主要是做一些跳转前的一些准备工作,并且传入创建好的Segue对象这个方法的sender参数就是上面那个方法的sender参数,这个sender主要就是做一个标记,比如说Segue有多条线,目标控制器有两个,来源控制器只有一个。我们想区分跳转是哪条线来跳转的就可以通过传入一个sender来进行判断,sender可以是字符串来进行判断。当然我们有还可以通过identifiler来进行判断

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender这个方法主要就是调用Segue对象的-(void)perform:方法开始执行界面的跳转,也就是取得来源控制器所在的UINavigationController然后调用UINavigationController的push方法将目标控制器压人栈中,完成跳转。





原创粉丝点击