【问题标题】:How do I update a UIlabel from Popup View Using Separate View Controller如何使用单独的视图控制器从弹出视图更新 UIlabel
【发布时间】:2020-02-04 18:21:26
【问题描述】:

对 Swift 编程有点陌生,并且有一个关于从弹出视图更新现有 uilabel 的问题。我按照本教程进行操作:

YouTube

我有一个名为“myViewController”的主 ViewController 和一个名为“popUp”的弹出视图控制器。 在 myViewController 我有 1 x UILabel 这是一个插座:

@IBOutlet weak var myLabel: UILabel?

这个标签被填充到 viewDidLoad:

myLabel.text = "hello"

在弹出视图控制器上,我有 6 个按钮。每个按钮都有一个 IBAction:

  @IBAction func button1(_ sender: Any) {

//how do I set the uilabel from here to myViewController

dismiss(animated: true, completion: nil)
}

我像这样展示弹出窗口:

Storyboard Segue

我希望能够调出弹出控制器并选择一个 UI 按钮,它会自动关闭并更新第一个视图控制器上的标签。除了更新 UIlabel,我可以让一切正常工作。

希望有道理

谢谢你

【问题讨论】:

    标签: swift


    【解决方案1】:

    例如,您可以使用通知或协议,让主视图控制器知道何时按下弹出控制器上的按钮。

    https://developer.apple.com/documentation/foundation/nsnotificationcenter

    https://docs.swift.org/swift-book/LanguageGuide/Protocols.html

    【讨论】:

    • 你好,我从这个答案中得到了它。谢谢
    • 没问题,很高兴为您提供帮助。如果这对您有用,请单击接受(此答案)。谢谢。
    【解决方案2】:
    You can create functions inside of myViewController that will get called when a button is pressed:
    
        //this would be in myViewController
    
        var labelText: String?
       // in viewDidLoad() 
        if myLabel.text != nil { 
        myLabel.text 
        } else { 
        myLabel.text = "hello" 
        } 
        func changeLabelToSayFoo() { 
        self.labelText = "Foo" 
        }
    
        //this would be for the button in the pop up controller
        @IBAction func button1(_ sender: Any) {
    
        myViewController.changeLabelToSayFoo()
    
        dismiss(animated: true, completion: nil)
        }
    

    【讨论】:

    • 您好,我之前尝试过这种方式,但出现以下错误。 线程 1:致命错误:在展开可选值时意外发现 nil
    • 好的,这是有道理的。为 myViewController var labelText: String 中的文本设置一个值怎么样?然后在 viewDidLoad() if myLabel.text != nil { myLabel.text } else { myLabel.Text = "hello" } 将 changeLabelToSayFoo 更改为 func changeLabelToSayFoo() { self.labelText = "Foo" }
    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多