我尝试了许多方法将数据从弹出视图控制器发送到主视图控制器。但失败了。有人能帮我吗。我用的是“礼物作为礼物”。我想输入的文本作为主视图的标签文本在弹出视图的文本字段中。
发布于 2017-07-01 13:36:45
在弹出视图中,使用Swift 3中的协议将数据发送到主ViewController。在这里输入图像描述的详细信息如下…1.使用sendDataToViewProtocol协议实现的视图控制器。
import UIKit
class ViewController: UIViewController,sendDataToViewProtocol {
@IBOutlet weak var lshowDataLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnShowPopUpDialog(_ sender: Any) {
let popUpVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopupVIewController") as! PopupVIewController
//Don't forget initialize protocal deletage
popUpVc.delegate = self
self.addChildViewController(popUpVc)
popUpVc.view.frame = self.view.frame
self.view.addSubview(popUpVc.view)
popUpVc.didMove(toParentViewController: self)
}
func inputData(data: String) {
lshowDataLabel.text = data
}
}发布于 2017-03-10 06:29:42
首先,在主ViewController中保留一个临时变量。让我们称之为:
var somethingCool: String?
然后,在弹出的ViewController代码中,假设您有segue触发器,则需要添加一个新方法。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "your_segue_identifier" {
if let vc = segue.destination as? MainViewController {
vc.somethingCool = "whatever_you_want"
}
}
}https://stackoverflow.com/questions/42711630
复制相似问题