当尝试将导航栏按钮连接到 Xcode 6 中 ViewController 的退出项时(不太确定这是否是 Xcode 6 问题,但值得一提,因为它处于测试阶段),它在自定义类中找不到 Swift 函数。
它应该找到的函数:
@IBAction func unwindToList(segue: UIStoryboardSegue) {
}
我在视图上制作了另一个按钮,只是为了确保我可以得到一个与 Swift 一起工作的 IBAction,并且我正确地编写了它。这工作正常:
@IBAction func test(sender: AnyObject) {
NSLog("Test")
}
我见过这个问题 https://stackoverflow.com/questions/12792573/cannot-connect-storyboard-unwind-segue这似乎是同一个问题,但根据那里的答案,这应该有效。
Xcode 6 处于测试阶段,当然,Swift 是非常新的,但在考虑它是一个潜在的错误之前想看看是否有人遇到过这个。
这是 Xcode 6 的一个已知问题:
Interface Builder 无法识别 Swift 类中声明的展开 segue 操作
为了解决这个问题,您需要:
- Change
class MyViewController
to @objc(MyViewController) class MyViewController
-
创建一个 Objective-C 头文件,其中包含重新声明 segue 操作的 MyViewController 类别。
@interface MyViewController (Workaround)
- (IBAction)unwindToMyViewController: (UIStoryboardSegue *)segue;
@end
在故事板中,选择 MyViewController 的实例,清除其自定义类,然后
将其设置回 MyViewController。
完成这些步骤后,您可以再次将按钮连接到退出项。
Xcode 6 发行说明 https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/xc6_release_notes/xc6_release_notes.html#//apple_ref/doc/uid/TP40001051-CH4-SW1 PDF,第 10 页
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)