xcode4.2 - быстрый доступ к метке Viewcontrollers из внешнего класса - PullRequest
0 голосов
/ 20 мая 2019

Где проблема с доступом к метке ViewController: UIViewController (здесь: розетка с именем timerLabel ) из AnotherClass. Я хотел бы установить текст.

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 ? THX

Ответы [ 4 ]

0 голосов
/ 20 мая 2019

Вы можете назначить идентификатор контроллеру представления, с которого вы пытаетесь получить доступ к метке, создать его экземпляр, затем получить доступ к метке, например, так:

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

, где «abc» - идентификатор, который вы использовали

0 голосов
/ 20 мая 2019

С объяснением вашего вопроса похоже, У вас есть IBOutlet (доступ к которому можно получить только через Instance), и вы пытаетесь получить к нему доступ через класс (ViewController)

Создайте объект ViewController и попробуйте обновить текст для timerLabel

let vc = ViewController()
vc.timerLabel.text = "HiDuEi"
0 голосов
/ 20 мая 2019

Вам необходимо создать делегата для класса, как

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

При создании

 let ca = ExternalClass()
 ca.delegate = self
0 голосов
/ 20 мая 2019

ViewController - это тип, а не экземпляр объекта. Вам нужно как-то получить ссылку на ваш экземпляр ViewController и затем получить доступ к метке. Э.Г.

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

Обратите внимание, что это выше создает новый экземпляр, трудно сказать, где создан ваш другой viewController и как получить к нему доступ из кода, который вы опубликовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...