Swift 中 Segue Unwind 的解决方法不触发
Posted
技术标签:
【中文标题】Swift 中 Segue Unwind 的解决方法不触发【英文标题】:Workaround for Segue Unwind in Swift not firing 【发布时间】:2014-07-24 16:59:08 【问题描述】:我对在此处展开 segue 的解决方法感到有些困惑:Xcode 6 Storyboard Unwind Segue with Swift Not Connecting to Exit
segue 尚未触发,我相信我正在按照解决方法中的概述实现它:
1) 视图控制器标头:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@class DetailViewController;
@interface DetailViewController : UIViewController
- (IBAction) unwindToMaster:(UIStoryboardSegue *) segue;
@end
2) Swift 中的控制器:
@objc(DetailViewController)class DetailViewController: UIViewController, UISplitViewControllerDelegate
@IBOutlet var detailDescriptionLabel: UILabel
var masterPopoverController: UIPopoverController? = nil
@IBOutlet var itemButton: UIBarButtonItem
@IBAction func unwindToMaster(segue:UIStoryboardSegue)
NSLog("unwind baby")
[...]
3) 故事板中的链接(作为 XML):
<barButtonItem key="rightBarButtonItem" title="Item" id="5Nk-ZI-b7r">
<connections>
<segue destination="aIR-Or-dY2" kind="unwind" unwindAction="unwindToMaster:" id="aWo-Uk-qUQ"/>
</connections>
</barButtonItem>
4) 我如何重置自定义类:
我转到自定义类侧页,删除“类”文本字段中的所有内容。它默认为 UIViewController。我保存,然后单击下拉菜单并选择 DetailViewController。
segue 没有触发,即它显然没有正确链接到“项目”按钮,但我不知道原因是什么。
我确实实施了上面链接和此链接中概述的解决方案:Workaround for swift unwinding
当然我可能做错了,希望得到一些指导。
【问题讨论】:
您更新到 Xcode 6 Beta 4 了吗?它应该首先解决了需要解决方法的问题,因此您可能根本不需要使用解决方法。 你知道我没有;不知道 v4 已经发布了。我在 3 天前检查过。我会下载它,但我认为这是一个学习混合 Objc 和 Swift 的机会——而且由于我从上面的有效答案中复制了这些步骤,我仍然想了解我做错了什么。有意义吗? 正如您发布的链接中所述,其他人也对解决方法有疑问,它对某些人有效,需要为其他人重新启动 Xcode,而其他人仍然失败。因此,可能是您没有做错任何事情,而问题只是 Xcode、ios 或 Swift 处于测试阶段。 我明白了。会升级。如果您想将您的评论作为答案 - 我认为清晰 re: v4 值得一票。 【参考方案1】:Xcode 6 Beta 4 修复了 unwind segues 在 Swift 类中找不到函数的问题,因此不再需要实现此解决方法。
【讨论】:
以上是关于Swift 中 Segue Unwind 的解决方法不触发的主要内容,如果未能解决你的问题,请参考以下文章