使用Storyboard跳转和页面间的传值

使用Storyboard跳转的方法之一


使用Storyboard跳转和页面间的传值_第1张图片


1. 右键按住这个,然后拖拽到另外一个ViewController。 会弹出一个窗口,因为之前要跳转的ViewController没有UINavigationControler,所以只能使用present modally,连接后会生成这个链接,这个官方称为Segue。


2.点击中间这个Segue。然后在右边的属性栏中输入presentDetailsView,这个是用来区分跳转的。使用Storyboard跳转和页面间的传值_第2张图片


3. 在第一个ViewController中有一个Button, 当我们点击后,就会跳转到第二个页面。 我们需要在Button点击后的方法中写一句话执行跳转。

- (IBAction)presentDetails:(id)sender {

    

    [selfperformSegueWithIdentifier:@"presentDetailsView"sender:sender];

}


这样子就可以点击Button跳转了, 这里讲的只是其中一种跳转方法。


使用Storyboard传值

就在上面的基础上, 添加几句话就能够传值了。

使用Storyboard跳转的时候,会执行一个代理方法,我们在这个代理方法中填写需要传的参数。


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    

    //有多个页面跳转,我们这边应该判断segueidentifier现在只有一个页面,可以省去判断

    if ([segue.identifierisEqualToString:@"presentDetailsView"]) {

        

        //destinationViewController是目标控制器,我们这边使用强转。

        DetailsViewController *detailsViewController= (DetailsViewController *)segue.destinationViewController;

        //这边需要注意的是,detailsViewControlelr的界面还没加载,里面的控件还是为nil,如果直接传到控件上去,参数不会显示出来。

        //比如,我直接传到detailsViewControllerlabel上面,等跳转过去后,label不会显示出来。

        detailsViewController.label.text =@"123456";

        

        //所以,我们写一个属性用来接收传过去的参数 其实,我们使用中文也是可以的 嘿嘿

        detailsViewController.传过来的参数 =@"123456789";

    }

    

}



使用Storyboard跳转和页面间的传值_第3张图片


使用Storyboard跳转和页面间的传值_第4张图片


这样子就可以了。



你可能感兴趣的:(ios开发,Storyboard传值)