我正在开发一个摄像头应用程序,其中摄像头视图以模式显示.在我完成修剪之后.我做了一个放松的过渡到MainPageViewController.(请看截图)

storyboard

我在MainPageViewController内的放松功能如下:;

@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {
    self.performSegueWithIdentifier("Categories", sender: self)
}

其中"categories"是从MainPageViewControllerCategoriesTableViewController的推送序列标识符.

程序进入unwindToMainMenu功能,但不执行推送序列.知道怎么解决吗?

注:我找到了同样的question个,但答案建议改变故事板 struct .

推荐答案

go 派对有点晚了,但我找到了一种不用国旗的方法

注意:这只适用于iOS 9+,因为只有自定义segue支持iOS 9之前的类名,并且不能在情节提要中将退出segue声明为自定义segue

1.子类UIStoryboardSegue with UIStoryboardSegue with completion

class UIStoryboardSegueWithCompletion: UIStoryboardSegue {
    var completion: (() -> Void)?

    override func perform() {
        super.perform()
        if let completion = completion {
            completion()
        }
    }
}

2.将UIStoryBoardSegueWithCompletion设置为退出阶段的类

注意:这个环节的动作应该是unwindToMainMenu,以匹配原始问题

Select exit segue from storyboard

3.更新unwind@IBAction以执行完成处理程序中的代码

@IBAction func unwindToMainMenu(segue: UIStoryboardSegue) {
    if let segue = segue as? UIStoryboardSegueWithCompletion {
        segue.completion = { 
            self.performSegueWithIdentifier("Categories", sender: self) 
        }
    }
}

现在,您的代码将在退出序列完成转换后执行

Swift相关问答推荐

多个提取来计算核心数据中的记录

SwiftUI map 旋转

在Xcode SWIFT中运行用Ionic编写的函数

如何避免切换视图递归onChange调用SwiftUI

try 从闭包访问返回的字符串时出现无法将类型 '()' 的返回表达式转换为返回类型 'String'编译器错误

从 Obj-C 函数返回 swift 类的不兼容指针类型

确定路径是否相交的有效方法

如何在 SceneKit 上制作毛玻璃效果

Swift-SceneKit-无法从art.scnassets加载.scn文件

iOS16 Bug 键盘在表单解雇 SwiftUI 时打破布局

令人满意的 var body:协议扩展中的一些视图

使用协议捕获 SwiftUI 视图

不使用 ViewController 时如何显示推送通知的alert 对话框

将数据附加到 Firebase 实时数据库后,NavigationLink 将我重定向到上一个视图

如何防止 UITableViewCell 移动(Swift 5)

为什么 swift 中的类没有存储类型属性?

MKAnnotation Swift

哪些版本的 Xcode 支持哪些版本的 Swift?

如何快速显示数组的所有元素?

我可以让#selector 引用 Swift 中的闭包吗?