gpt4 book ai didi

xcode - 展开后执行 segue

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:42 25 4
gpt4 key购买 nike

我有一个包含在导航 Controller 中的主屏幕。

主屏幕有几个按钮可以触发转至其他 View 。一键进入表格 View 。

此表中的选择应触发通常由主视图上的按钮之一执行的转场。

我假设我需要先展开到主屏幕,然后以编程方式从展开转场触发转场,但是当我这样做时发生的是它首先执行编程转场,然后展开,最后结束再次出现在主屏幕上。

处理这种情况的正确方法是什么?我不希望在以编程方式调用 segue 之后能够返回到 TableView ,然后后退按钮应该转到主视图。

如果它有助于更​​多地解释我的用例: TableView 是一个级别列表。选择应该启动我的游戏 View ,其中包含在 TableView 中选择的级别。

enter image description here

我在主视图中展开的 segue:

@IBAction func backFromLevelSelectionUnwindSegue(segue:UIStoryboardSegue) {
performSegueWithIdentifier("playSegue", sender: self)
}

显然 playSegue 是游戏 View Controller 的转场。

一个类似问题的答案建议设置一个 bool 标志,然后在 viewDidAppear 中执行转场,但 viewDidAppear 似乎不必知道已发生的展开转场。是否有我没有遇到过的“正确”解决方案?

最佳答案

在您的 backFromLevelSelectionUnwindSegue 中,您仍处于展开转场上下文中。因此,在上下文完成使用 dispatch_asyncperformSelector:withObject:afterDelay 后调用 performSegueWithIdentifier,如下所示。

@IBAction func
backFromLevelSelectionUnwindSegue( segue:UIStoryboardSegue ) {
dispatch_async( dispatch_get_main_queue() ) {
self.performSegueWithIdentifier( "playSegue", sender: self )
}
}

关于xcode - 展开后执行 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36491468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com