我有两个 ViewController's.
FirstVC
-我有label
和button
同赛格瑞“模式”
SecondVC
-我有PickerView
与button
(回FirstVC):
@IBAction func bntback(sender: AnyObject) {
self.dissmissViewControllerAnimatied(true, completion: nil)
}
我创建的委托SecondViewController
为:
protocol SendDataDelegate {
func sendData(text:String)
}
下一个:
class SecondVC: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
var delegate: SendDataDelegate!
var firstvc = FirstVC()
var arr = ["First", "Second", "Third"]
@IBOutlet var pickview: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
pickview.dataSource = self
pickview.selegate = self
}
我的函数,PickerView
在此函数中,我的委托用作:
func pickerView (pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
var text = arr[row]
dispatch_async(dispatch_get_main_quene(), {
self.delegate.sendData(text)//there is an error: "fatal error: unexpectedly found nil while unwrapping an Optional value"
)}
}
FirstVC:
class FirstVC: UIViewController, SendDataDelegate {
var data = SecondVC()
//....
override func viewDidLoad() {
super.viewDidLoad()
self.data.delegate = self
}
func sendData (text:String) {
mylable.text = text
//or
//var txt = text
//mylable.text = txt
}
}
请帮助我解决这个问题。
1)您需要将委托设置为prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let viewController = segue.destinationViewController as? SecondVC {
viewController.delegate = self
}
}
更新:
2)设为delegate
可选
class SecondVC: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
var delegate: SendDataDelegate?
...
func pickerView (pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
var text = arr[row]
dispatch_async(dispatch_get_main_quene(), {
self.delegate?.sendData(text)
)}
}
我对如何在两个模型之间传递数据有疑问。 所以我想把状态从单元传递到主模型,并在那里进行反应。例如发送请求。
我的应用程序包含5个ViewControllers的TabBar控制器可以单击每个viewcontrollers中的一个按钮,该按钮将弹出另一个视图,用户可以在其中选择一个设置。按钮(被点击)应该根据每个ViewController中选择的设置来改变其背景。因此,如果用户点击VC1中的按钮并选择设置,该信息应该传播到所有其他VC中,以便按钮具有相同的背景。 我正在使用故事板,我知道这很容易在2VC
问题内容: 我在页面上有一个组件的两个实例(搜索字段),在它们之间有另一个组件(进行服务器调用的按钮),例如: 我要做的只是将一个未修改的参数从CardSearch字段传递到RunOnServer按钮,但是如果简单的话,我该死的。据此,我可以使用this.state.var作为道具,但是这样做可以在编译代码时给我’undefined.state.var’。React的官方文档并不出色。他们只是告诉
可以在多个类之间传递数据吗? 我试图实现的是“一个类设置某个类的值,另一个类访问它”(java初学者)
问题内容: 我有两个单独的android应用程序,即AppA和AppB。我试图让AppA启动AppB(这是一个游戏应用程序)。用户玩完游戏(AppB)后,它将把游戏记录发送回AppA。 因此,AppA可以正确启动AppB,但是当用户玩完游戏(AppB)后,AppB在将数据发送回AppA时崩溃,并且出现了以下错误: 流程:com.joy.AppB,PID:20265 android.content.
问题内容: 我想单击一列并将单元格索引发送到新阶段。但是我无法将参数()传递给另一个控制器。我已经尝试了所有方法,但仍然无法正常工作。 主控制器 EditClientController 问题答案: 如果要在FXML文件中指定控制器(因此您不能使用Deepak的答案), 并且 要访问方法中的索引(因此您不能使用José的答案),则可以使用控制器工厂: