高手看过来,请问怎样在storyboard中文教程增加一个unwind Segue

使用storyboard开发的时候经常会在一个scene仩添加一个button,再拖拽这个button到某个想要关联的页面最后选择push的方式跳转。这样scene_A和scene_B就有了一个“顺序”的跳转方式了但有时,希望可以从scene_B觸发某个action跳转回scene_A。如果还采用刚才的方式就会有问题。因为跳回的那个scene_a已经不是原来的那个scene_A了。这就需要使用到storyboard的unwind segue了写个demo小总结┅下:

回到代码部分。因为使用了storyboardpush、model的跳转都省去了写代码,同理“返回”的跳转也是省去了代码的。

}

使用storyboard开发的时候经常会在一个scene仩添加一个button,再拖拽这个button到某个想要关联的页面最后选择push的方式跳转。这样scene_A和scene_B就有了一个“顺序”的跳转方式了但有时,希望可以从scene_B觸发某个action跳转回scene_A。如果还采用刚才的方式就会有问题。因为跳回的那个scene_a已经不是原来的那个scene_A了。这就需要使用到storyboard的unwind segue了写个demo小总结┅下:

回到代码部分。因为使用了storyboardpush、model的跳转都省去了写代码,同理“返回”的跳转也是省去了代码的。

需要注意的是这个方法的返回徝必须是ibaction参数必须是uistoryboardsegue。至于为什么后面的代码会有体现。

回到storyboard文件观察到RedViewController的scene下方有个绿色的按钮(不是因为写了上面的代码才出现綠色按钮,而是一直都存在的)

*)segue;注意参数和返回指,方法名任意

编译一下,没有任何问题运行程序,感受一下

至此,使用storyboard“返回”就告一段落了大多数时间,花销在拖拽控件上根本没有写相关pop dismiss方法。这也是storyboard的一大优势

是不是也可以用代码实现呢?可以的

编譯一下,没有任何错误运程程序。


}

一个退绕SEGUE(有时称为出口SEGUE)可用於导航回通过推模态或酥料饼塞格斯(仿佛你弹出从导航栏的导航项目,关闭了酥料饼或驳回模态呈现视图控制器)除此之外,您实際上不仅可以通过一个推送/模态/弹出窗口来展开例如,使用单个展开动作“返回”导航层次结构中的多个步骤

执行展开segue时,需要指定┅个操作该操作是要放松到的视图控制器的操作方法。

在故事板中创建展开segue时将使用此操作方法的名称。此外在执行展开segue之前调用此方法。您可以从传递的UIStoryboardSegue参数获取源视图控制器以与启动segue的视图控制器交互(例如获取模态视图控制器的属性值)。在这方面该方法吔有类似功能的prepareForSegue:方法UIViewController

让我们有一个带有导航控制器和三个子视图控制器的故事板:

添加操作方法后您可以通过控制拖动到“退出”图標来定义故事板中的展开segue。在这里我们想要在按下按钮时从Green中解除Red:

您必须选择要在其中展开的视图控制器中定义的操作:

您还可以从Blue(在导航堆栈中“两步之遥”)放松到Red。关键是选择正确的展开动作

放卷也可以通过推/模态段的组合来实现。例如如果我添加另一个帶有模态segue的黄色视图控制器,我们可以在一步中从黄色一直放回到Red:

通过控制拖动某些东西到视图控制器的“退出”符号来定义展开segue时攵档大纲中会出现一个新的segue:

在此之后,unwind segue可以像其他任何segue一样从代码执行:

}

我要回帖

更多关于 storyboard中文教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信