首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据从popover视图控制器发送到主视图控制器。传递一个字符串,以便我可以将其作为主视图中的标签文本。

如何将数据从popover视图控制器发送到主视图控制器。传递一个字符串,以便我可以将其作为主视图中的标签文本。
EN

Stack Overflow用户
提问于 2017-03-10 06:21:44
回答 2查看 1K关注 0票数 2

我尝试了许多方法将数据从弹出视图控制器发送到主视图控制器。但失败了。有人能帮我吗。我用的是“礼物作为礼物”。我想输入的文本作为主视图的标签文本在弹出视图的文本字段中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-01 13:36:45

在弹出视图中,使用Swift 3中的协议将数据发送到主ViewController。在这里输入图像描述的详细信息如下…1.使用sendDataToViewProtocol协议实现的视图控制器。

代码语言:javascript
复制
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

}
}
  1. 下面弹出名为sendDataToViewProtocol的协议的视图控制器。3. PopupVIewController之外的协议声明。
  2. 不要忘记将ViewController分配给PopupVIewController。
  3. 在viewController withIdentifier中:" PopupVIewController“,"PopupVIewController”是PopupVIewController故事硼Id。
  4. 请参阅所附的image.import UIKit协议sendDataToViewProtocol { func inputData(data:String) }类PopupVIewController: UIViewController { //Protocol对象var委托:sendDataToViewProtocol?= nil @IBOutlet弱var txtInputFieldText: UITextField!覆盖func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor .black.withAlphaComponent(0.8) } @IBAction func btnSendDataToViewController(_发件人: Any) { //"Check“如果(委托!= nil){ //Check textField为空if(txtInputFieldText.text != ""){ //set textField数据以协议函数delegate?.inputData( Data : txtInputFieldText.text!)self.view.removeFromSuperview() }} @IBAction func btnClose(_ btnClose: Any) { self.view.removeFromSuperview() }}
票数 3
EN

Stack Overflow用户

发布于 2017-03-10 06:29:42

首先,在主ViewController中保留一个临时变量。让我们称之为:

var somethingCool: String?

然后,在弹出的ViewController代码中,假设您有segue触发器,则需要添加一个新方法。

代码语言:javascript
复制
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"
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42711630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档