【问题标题】:xcode4.2 - Swift Accessing Viewcontrollers label from external classxcode4.2 - 从外部类 Swift 访问 Viewcontrollers 标签
【发布时间】:2019-10-07 01:36:49
【问题描述】:

访问 ViewController 的问题出在哪里:来自 AnotherClass 的 UIViewController 标签(此处:名为 timerLabel 的出口)。我想设置一个文本。

class AnotherClass{

//[...]

 func updateTimeLabel(){
        // To Solve!!!*******
        //class name is ViewController?

    let myLabel = ViewController.timerLabel
    myLabel.text = "HiDuEi"
}

//[...]

// error message is:

//Instance member 'timerLabel' cannot be used on type 'ViewController'

}

我怎样才能正确访问 ViewController 类(称为 ViewController)并在那里访问我的插座(一个标签),称为 timerLabel? 谢了

【问题讨论】:

    标签: swift inheritance viewcontroller xcode4.2


    【解决方案1】:

    ViewController 是一种类型,而不是对象的实例。您需要以某种方式获取对 ViewController 实例 的引用,然后访问标签。例如

    let viewController = ViewController()
    viewController.timerLabel.text = "HiDuEi"
    

    请注意,上面创建了一个新实例,很难说您的其他 viewController 是在哪里创建的,以及如何从您发布的代码中访问它。

    【讨论】:

    • 完成!正如我之前尝试过的那样,我忘记了 ViewController 之后的 () 。非常感谢您的帮助!!!
    【解决方案2】:

    你的问题的解释似乎是, 您有一个 IBOutlet(只能通过 Instance 访问)并且您正尝试通过 Class (ViewController) 访问它

    创建一个 ViewController 的对象,然后尝试更新 timerLabel 的文本

    let vc = ViewController()
    vc.timerLabel.text = "HiDuEi"
    

    【讨论】:

    • 非常感谢 Deepak,它是正确使用 () 的古老小事......
    【解决方案3】:

    你需要为类创建一个委托

    class ExternalClass{
       weak var delegate:VCName?
        func updateTimeLabel(){
        // To Solve!!!******* 
          delegate?.timerLabel.text = "HiDuEi" 
        }
     }
    

    创建时

     let ca = ExternalClass()
     ca.delegate = self
    

    【讨论】:

      【解决方案4】:

      您可以为尝试访问标签的视图控制器分配一个标识符,实例化它,然后访问标签,如下所示:

      var vc : ViewController = storyboard.instantiateViewControllerWithIdentifier("abc") as! ViewController
      vc.timerLabel.text = "HiDuEi"
      

      其中“abc”是您使用的标识符

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 2011-01-02
        • 2021-06-09
        • 1970-01-01
        • 1970-01-01
        • 2018-12-31
        相关资源
        最近更新 更多