目前我有以下故事板:
UITableViewController
- > Segue
- > UINavigationController
- > Relationship
- > UITableViewController
在最后一个UITableViewController中,我添加了一个带有以下代码的后退按钮:
navigationItem.setLeftBarButtonItem(UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "unwind"), animated: true)
let attributes = [NSFontAttributeName: UIFont.fontAwesomeOfSize(30), NSForegroundColorAttributeName: Constants.InterfaceColors.firstHighlightColor] as Dictionary!
let unwindNavigationItem = navigationItem.leftBarButtonItem! as UIBarButtonItem
unwindNavigationItem.setTitleTextAttributes(attributes, forState: .Normal)
unwindNavigationItem.title = String.fontAwesomeIconWithName(FontAwesome.AngleLeft)
据我所知,我必须将文件所有者连接到故事板中的出口。我发现,只有在你的控制器代码中有一个动作,如下所示,这才有可能。
@IBAction func unwindToWeekOverview(segue: UIStoryboardSegue) {
NSLog("unwind to week overview")
dismissViewControllerAnimated(true, completion: nil)
}
由于我现在不知道如何直接将按钮的动作连接到我的展开动作,我添加了unwind
功能。
func unwind() {
performSegueWithIdentifier("UnwindToWeekOverview", sender: self)
}
当我现在单击后退按钮时,将调用展开功能,但不会调用segue。 我错过了什么?
答案 0 :(得分:1)
看一下这个链接。这是由MIKE WOELMER和他非常清楚地解释的。
https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/
首先,您需要在目标视图控制器中创建一个IBAction,如下所示:
@IBAction func goBack(segue: UIStoryboardSegue) {
print("go back")
然后您只需要从按钮连接(控制拖动)到退出插座。在弹出窗口中,您将看到之前添加的功能,只需选择它即可。