ios - Xcode 8 beta 6 unwind segue 似乎坏了,因为 "WithSegue"被自动添加到 @IBAction unwind 方法名称

标签 ios xcode storyboard interface-builder

我刚刚意识到,在当前的 Xcode 8 beta 6 中,当我将展开操作连接到例如模态呈现的 View Controller 中的条形按钮项目以展开模态呈现转场并呈现 View Controller 之前在导航堆栈中,Xcode 将“WithSegue”添加到可用于此目的的现有 @IBActions 的名称 - 这会中断展开转场(不会执行)。如果我在源代码中编辑 Storyboard 文件(作为 XML),并从 @IBAction 方法标识符中删除这个“WithSegue”,segue 将按预期工作。例如,我在原始 View Controller (unwind segue 的目的地)中的 unwind 方法称为“unwindFromSettingsToTableView”——当我按 CTRL 键连接模态显示中的条形按钮项目时,Xcode/Interface Builder 将此方法重命名为“unwindFromSettingsToTableViewWithSegue” View Controller 到场景停靠栏中 View Controller 的退出项。

这是 Xcode 8 beta 中的错误吗?这是一个已知的错误吗?我错过了什么吗?

我检查了我之前连接的 unwind segues(在 Xcode 7 中连接),它们没有这个“WithSegue”后缀。如果我删除那些现有的“vintage”unwind segues,并在 Xcode 8 中再次连接它们,Interface Builder 现在建议使用带有“WithSegue”后缀的相同方法名称 - 这些 segues 会中断。当我删除 Storyboard源代码中的后缀时,unwind segue 再次起作用。

最好能得到任何指示。这种行为很烦人。

致以最良好的祝愿! 比约恩

最佳答案

在 Swift 3 中,如果您不希望它添加 WithSegue,请定义您的 @IBAction 方法以不命名第一个参数:

@IBAction func unwindHome(_ segue: UIStoryboardSegue) {
    // this is intentionally blank
}

如果您不使用 _ 语法,当它连接 @IBAction 时,它会将 WithSegue 添加到名字。

当我将上述语法用于展开操作时,它在 Xcode 8 beta 6 中运行良好。

顺便说一句,当我在 beta 6 中不使用上面显示的 _ 语法时,它会将操作命名为 unwindHomeWithSegue 但它仍然可以使用更长的名称,无需编辑 Storyboard XML。我想知道您无法正常工作的 unwind segue 是否是其他问题的结果。我们需要一个可重现的问题示例来进一步诊断。也许你可以分享一个MCVE .

关于ios - Xcode 8 beta 6 unwind segue 似乎坏了,因为 "WithSegue"被自动添加到 @IBAction unwind 方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064398/

相关文章:

iphone - 如何在 iPad 应用程序中制作动画?

ios - Google Analytics Pod 在 xcode 6.4 中给出错误

ios - 指定委托(delegate)从 Storyboard快速查看

ios - 如何播放iOS系统声音并取消回调

ios - Xcode10:操作无法完成。 (DVTCoreSimulatorAdditionsErrorDomain 错误 0。)

ios - 设计 UITableView 背景图片

macos - 在 Storyboard 中使用 NSWindowController 加载工作表

iOS登录/自动登录和注销流程

iOS 黑色放大镜

ios - 在 iOS 上可用 OpenCL