GeekBand.iOS-StoryBoard

2016/3/22 posted in  iOS学习笔记  

苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了。使用Storyboard去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能为我们节省大量的时间。我们还可以很直观地看出各个界面之间的关系,修改起来也很方便。将来如果遇到需要作修改的地方,我们只需要找到相对应的Storyboard就可以了,比起使用代码来绘制界面来说,快捷了不少。

本文主要介绍segue。

使用storyboard进行页面跳转

  1. 纯storyBoard操作

    我们在Storyboard上放置一个按扭,在按扭上方点击并按住“右键”不放,拖动到跳转的下一个界面上。

    松开右键后,会有一个黑色透明的弹出框,选择跳转的方式:

    从这里可以看到,界面和界面之间多了一条线连接,如下图:

    此时我们已经建立一个用于页面跳转的关系,称之为segue
    我们可以在Xcode右边的工具栏看到,我们刚刚的连线操作(现在可以运行项目了):

  2. 使用代码调用segue跳转
    需要在Storyboard Segue中的Identifier指定一个标识符。
    使用某个动作跳转:[self performSegueWithIdentifier:@"Identifier" sender:self];

使用segue传递数据

  1. 使用prepareForSegue进行传值

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // segue.identifier:获取连线的ID
        if ([segue.identifier isEqualToString:@"SendValue"]) {
            // segue.destinationViewController:获取连线时所指的界面(VC)
            //方法1:设置属性
            ReceiveViewController *receive = segue.destinationViewController;
            receive.name = @"Garvey";
            receive.age = 110;
            //2:使用KVC给目标场景传值
            [destinationController setValue:@119 forKey:@number];
         }
    }
    
  2. 返回上级的某个页面
    使用unwindForSegue进行返回(iOS9+)。
    -(IBAction)unwindForSegue:(UIStoryboardSegue *)unwindSegue towardsViewController:(UIViewController *)subsequentVC{}