以编程方式执行 unwind segue
Posted
技术标签:
【中文标题】以编程方式执行 unwind segue【英文标题】:Perform unwind segue programmatically 【发布时间】:2015-12-03 16:06:58 【问题描述】:目前我有以下情节提要:
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)
当我现在单击后退按钮时,会调用 unwind 函数,但不会调用 segue。 我错过了什么?
【问题讨论】:
【参考方案1】:看看这个链接。这是 MIKE WOELMER 写的,他解释得很清楚。
https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/
首先,您需要在目标视图控制器中创建一个 IBAction,如下所示:
@IBAction func goBack(segue: UIStoryboardSegue)
print("go back")
然后您只需从按钮连接(控制拖动)到退出插座。在弹出窗口中,您将看到之前添加的功能,只需选择它即可。
【讨论】:
以上是关于以编程方式执行 unwind segue的主要内容,如果未能解决你的问题,请参考以下文章