【发布时间】:2016-11-01 18:00:33
【问题描述】:
我正在尝试执行 unwind segue。我已经在一个全新的项目中测试了我的逻辑并且能够验证模式。但是在我的实际工作项目中,相同的模式不起作用。
我正在尝试从我的SettingsController 放松到我的EditorViewController。但是我的EditorViewController 内部的@IBAction 没有出现在SettingsController 的退出情节提要按钮中。
EditorViewController.swift
class EditorViewController: UIViewController {
// Snippet
@IBAction func unwindToEditor(segue: UIStoryboardSegue) {
// Some logic
}
}
将 segue 从一个控制器拖放到另一个控制器
尝试将 EditorViewController#unwindToEditor 与 SettingsController 关联
unwindToEditor 方法不可用。
我尝试过但没有帮助的事情:
- 重启 Xcode
- 从视图控制器中移除自定义类并重新添加
- 删除 Xcode 的派生数据
- 创建自定义 Obj-C 头文件
- 在我的展开操作中使用了多个方法签名
注意:
我发现控制器的“退出”按钮下的“Presenting Segues”中的可用 IBAction 列表仅从我的一个控制器中提取。跨多个控制器填充此列表可能存在问题?
发现的变通方法
似乎即使我的方法从列表中丢失,如果我去选择确实存在的方法之一并手动更改 unwind segue 的属性检查器中的方法调用,它将调用适当的(这是缺少)方法。
【问题讨论】:
-
你用的是哪个版本的swift?
-
Swift 3 和 Xcode 8.1
-
swift 3 强调命名参数要么给一个要么忽略
@IBAction func unwindToEditor(_ segue: UIStoryboardSegue) -
我已经尝试过,不幸的是,填充“Presenting Segues”列表似乎不是问题,因为我仅有的两个现有操作使用以下签名...
unwindToSomeView(segue: UIStoryboardSegue)