【问题标题】:Pass data from Parent Controller to popup Controller in Swift将数据从父控制器传递到 Swift 中的弹出控制器
【发布时间】:2016-10-28 03:44:35
【问题描述】:

我想在 Swift 中创建一个弹出控制器,但我无法将数据从父控制器传递到弹出窗口(在弹出窗口中设置标签文本)

代码:

let popUpPreload = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "popUpOneID") as! PopUpViewController
popUpPreload.delegate = self
popUpPreload.lbTitlePopUp.text = "title"
popUpPreload.tvIntructions.text = "intructions"
self.addChildViewController(popUpPreload)
popUpPreload.view.frame = self.view.frame
self.view.addSubview(popUpPreload.view)
popUpPreload.didMove(toParentViewController: self)

设置标签弹出文本错误。

我参考link

【问题讨论】:

  • 你遇到什么错误

标签: ios swift popup pass-data


【解决方案1】:

您不能从情节提要中实例化任何 ViewController,然后立即尝试在其插座上设置属性。在调用 ViewDidLoad 之前,它们都为零。当您调用实例化视图控制器时,它会加载 XML,创建 ViewController 及其所有子视图,然后使用键值观察将所有出口设置为它创建的视图。然后在此过程完成后调用 ViewDidLoad。

您需要写入目标视图控制器上的常规变量。

    let popUpPreload = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "popUpOneID") as! PopUpViewController
    popUpPreload.delegate = self
    popUpPreload.titleText = "title"

然后在 ViewController 的 ViewdidLoad 函数中,您将诸如 label.text 之类的 outlet 属性分配给您的变量。

    var titleText = ""
    override func viewDidLoad() {
        super.viewDidLoad()
        label.text = titleText
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多