【深入浅出ios开发】UIStoryboardSegue详解

       一个UIStoryboardSegue对象负责执行两个试图控制器之间的视觉过渡。另外,segue对象通常用来准备从一个控制器过渡到另一个控制器。segue对象包含了涉及过渡的控制器的信息。当segue被触发,并且在视觉过渡发生之前,正在运行的storyboard调用当前的视图控制器的prepareForSegue:sender:方法从而可以传送任何将要展示的必须数据到下一个视图控制器。

       UIStoryboardSegue类支持UIKit提供的标准视觉过渡。您还可以继承到您的故事板文件中定义的视图控制器之间的自定义转换。

       你不必直接创建segue对象。运行的storyboard创建他们当它必须执行一个在两个视图之间的segue时候。如果你希望的话,你也可以通过编程的方法启动一个segue通过使用UIViewController中的performSegueWithIdentifier:sender:方法。你可以通过这种方法启动一个segue从通过代码添加的资源并且在Interface builder中不可用。


子类注意事项:

     你可以继承UIStoryboard当你想在应用中的视图控制器之间提供一个自定义过渡。用自己定义的segue,创建一个segue line在interface buider上恰当的视图控制器之间并且设置他的类型为自定的监督类型;你必须指定segue的类名用来检查用。

     当故事板运行时检测到一个自定义的segue,它创建类的一个新实例,与视图控制器对象对其进行配置,要求源视图控制器为segue做准备,然后执行segue。


需要重载的方法:

对于自定义的segues,你需要重载的主要方法是perform. 运行的storyboard调用这个方法当执行从一个在

sourceViewController的视图控制器过渡到一个destinationViewController的视图控制器。如你需要初始化任何变量在你的自定义segue子类,你同样可以重载initWithIdentifier:source:destination:方法并且在你自定义实现中初始化他们。


替代子类:

如果你的segue不需要携带附加的信息或者提供除了 perform方法以外的任何方法,考虑使用segueWithIdentifier:source:destination:performHandler: 方法代替。


①自动segue:

直接从相应的控件连线到相应的ViewController,然后选择push


②手动segue:

从登陆界面连线到相应的ViewController,然后选择push。



然后在响应的事件中添加如下代码:

- (IBAction)clicktoTwo:(id)sender {
     [self performSegueWithIdentifier:@"oneToTwo" sender:nil];
  
}
其中oneToTwo是segue的ID


如果要将数据传入下一个ViewController中,需要以下方法:

//执行segue后,将要跳转前执行。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UIViewController *vc =  segue.destinationViewController;
    [vc.navigationItem setTitle:[NSString stringWithFormat:@"%@的联系人",self.textfieldName.text]];
}


    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值