我正在显示一个带有UITableView控件的UIView。我使用Show segue通过调用performSegueWithIdentifier来显示此视图。在调用segue的模块中,我添加了一个函数,希望在返回segue时使用它来检索一些数据。目前,我有一个已经与调用者上的函数关联的Done按钮,以便在回收时从segue中检索数据。但是,我想在UITableView中选择项目时执行此操作,而不是在点击Done按钮时执行。
在tableView(,willSelectRowAtIndexPath)中,我尝试调用popViewControllerAnimated。第二个UIView确实关闭并将我带回到调用的UIView,但未调用unwind函数。
我知道如何设置done按钮的unwind,使用Exit,但我无法弄清楚如何在UITableView上点击行时执行它。
以下是我用于执行segue的代码:
这里是我用来关闭第二个 UIView 的代码:
在tableView(,willSelectRowAtIndexPath)中,我尝试调用popViewControllerAnimated。第二个UIView确实关闭并将我带回到调用的UIView,但未调用unwind函数。
我知道如何设置done按钮的unwind,使用Exit,但我无法弄清楚如何在UITableView上点击行时执行它。
以下是我用于执行segue的代码:
@IBAction func fromButtonTap(sender: AnyObject) {
currentButton = sender.tag
self.performSegueWithIdentifier("UnitsSegue", sender: self)
}
当segue取消时执行的代码如下:
@IBAction func returnFromUnitSelection(segue: UIStoryboardSegue) {
var buttonToSet: UIButton!
var unitsToSet: UnitData!
fromLabel.text = "0"
toLabel.text = "0"
if let unitsSelectionViewController = segue.sourceViewController as? UnitSelectionController {
if currentButton == 0 {
fromUnitData = unitsSelectionViewController.selectedUnit
buttonToSet = fromButton
}
else {
toUnitData = unitsSelectionViewController.selectedUnit
buttonToSet = toButton
}
setButtonText(buttonToSet, firstLine: unitsSelectionViewController.selectedUnit.unitCode, secondLine: unitsSelectionViewController.selectedUnit.unitName, firstLineFontSize: 15, secondLineFontSize: 11)
}
}
这里是我用来关闭第二个 UIView 的代码:
func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
selectedUnit = temperatures[indexPath.row]
self.navigationController?.popViewControllerAnimated(true)
return indexPath
}
当我点击“完成”时,取消代码确实会执行。但是当我选择表格中的项目时,什么也没有发生。