zoukankan      html  css  js  c++  java
  • scenes & segues within storyboards

    Scenes

    Scenes in a storyboard represent content shown within one screen in your application. A scene involves a view controller and the views that make up its interface.

    There’s also no limit as to how many scenes you can have within one storyboard.

    If you have many scenes that are
    part of a distinctly different part of your application, you could also separate them out
    into another storyboard file.

    Separate storyboards can be loaded programmatically.

    eg, if you had a storyboard file named OtherStoryboard.storyboard, you
    could load it by using the following command:

    UIStoryboard *newStoryboard = [UIStoryboard storyboardWithName:@"OtherStoryboard" bundle:nil];

    Segues

    Segues allow you to easily transition from scene to scene. Segues are represented by
    the UIStoryboardSegue class.

    There are a few built-in segues that you can choose from. When working with an
    iPhone application you can choose from push, modal, or custom. For the iPad you’re
    given an extra choice of using a popover segue.

    Modal segues slide a scene from the bottom to the top and appear to be on top
    of the parent scene. You used a modal segue when showing your scene to create a
    new task.

    Push segues are used to transition the new scene in from the right. In
    a push segue the original scene that prompted the segue then goes away by sliding
    out to the left. You used this type of segue when tapping on a task from the tasks list
    to show the task view.
    Popover segues overlay only part of the parent view within a popover.
    You can create custom segues by creating your own UIStoryboardSegue class. This
    gives you full control over the transition and appearance of the new scene.


    You create segues in your storyboard by using your mouse to drag a connection
    from one scene or an actionable object to another.

    // trigger it when a row in your table view was selected
    -(void) tableView:(UITableView *)tableView
    didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        [self performSegueWithIdentifier:@"taskSegue"
          sender:self.tasks[indexPath.row]];
    }
        

    Passing data between view controllers with segues

    Segues also allow you to pass data to the next view controller before completing the
    transition. You do this by overriding the prepareForSegue:sender: method from
    the originating view controller:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        UIViewController *destination = segue.destinationViewController;
        // Check to see if you’re preparing for the correct segue
        if ([segue.identifier isEqualToString:@"taskSegue"])
            // Setting the sender as the task property
            [destination setValue:sender forKeyPath:@"task"];
        else
            // Get destination controller if not taskSegue
            destination = [segue.destinationViewController topViewController];
    
    // Set your current view controller as the delegate property [destination setValue:self forKeyPath:@"delegate"]; }

    Problems with using storyboarding

    1) multiple team members development

    The biggest problem with storyboarding is that it’s extremely difficult to use when
    working with a team that uses source code revision and management tools like Git,
    Subversion, or Mercurial.

    When multiple teammates make changes to the same storyboard,
    it becomes problematic. Source code revision tools won’t be able to properly merge
    the changes, and Xcode won’t be able to open the storyboard file until the changes
    have been merged successfully. You’ll be forced to do a deep dive into the XML to fix
    it yourself.

    2) Another problem is that it forces older developers, who have been comfortable
    using NIBs and creating and managing views programmatically, to change their
    ways.

  • 相关阅读:
    Linux下串口编程入门
    arm-linux-gdb+gdbserver环境搭建以及远程调试
    google jib容器打包工具
    docker入门——构建镜像
    Docker搭建MySQL服务
    docker基本操作
    Docker 使用指南—— 基本操作
    使用docker Maven插件本地构建docker镜像并发布到远程服务器
    10张图带你深入理解Docker容器和镜像
    springboot+Jib+Maven+Idea+Docker 实践
  • 原文地址:https://www.cnblogs.com/davidgu/p/3872630.html
Copyright © 2011-2022 走看看