通过 unwind segue 传递数据
Pass data through unwind segue
我一直在寻找这个问题的答案...我不知道如何通过 unwind segue 传递数据。我知道我应该使用 prepareForSegue
但我不确定我应该输入什么。我试图从一个 class:[=12= 中的 UIPickerView 传递一个变量 (myLabel) ]
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
myLabel.text = pickerData[row]
}
另一个class。我已经有了 unwind segue 代码,但不知道将 prepareForSegue 放在哪里以及放什么。
如果我的问题需要进一步说明,请告诉我。
prepareForSegue
在您将要展开的视图控制器的 class 中调用 from(之前推送或呈现的视图控制器,现在正在弹出或解雇)。 segue 的目标视图控制器是将作为结果出现的视图控制器。
如果我正确理解你的问题,你应该这样做:
class MyPickerController : UIViewController {
@IBOutlet weak var myLabel: UILabel!
var pickerData:[String]
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
myLabel.text = pickerData[row]
performSegueWithIdentifier( "mySegueName", sender: self )
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let myController = segue.destinationController as? MyDestinationViewController {
myController.text = myLabel.text
}
}
这会将标签文本传递给 MyDestinationViewController 实例。
请注意,我没有传递 UILabel 对象,而是文本。
您不能将该 UILabel 对象放置在目标控制器界面中,但您可以使用文本设置另一个标签,例如。
我一直在寻找这个问题的答案...我不知道如何通过 unwind segue 传递数据。我知道我应该使用 prepareForSegue
但我不确定我应该输入什么。我试图从一个 class:[=12= 中的 UIPickerView 传递一个变量 (myLabel) ]
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
myLabel.text = pickerData[row]
}
另一个class。我已经有了 unwind segue 代码,但不知道将 prepareForSegue 放在哪里以及放什么。
如果我的问题需要进一步说明,请告诉我。
prepareForSegue
在您将要展开的视图控制器的 class 中调用 from(之前推送或呈现的视图控制器,现在正在弹出或解雇)。 segue 的目标视图控制器是将作为结果出现的视图控制器。
如果我正确理解你的问题,你应该这样做:
class MyPickerController : UIViewController {
@IBOutlet weak var myLabel: UILabel!
var pickerData:[String]
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
myLabel.text = pickerData[row]
performSegueWithIdentifier( "mySegueName", sender: self )
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let myController = segue.destinationController as? MyDestinationViewController {
myController.text = myLabel.text
}
}
这会将标签文本传递给 MyDestinationViewController 实例。 请注意,我没有传递 UILabel 对象,而是文本。 您不能将该 UILabel 对象放置在目标控制器界面中,但您可以使用文本设置另一个标签,例如。