Как обновить свойство из ViewController в моем другом классе (SWIFT)

Я искал, но вижу только версию OC и, кажется, должен использовать NSNotificationCenter?

В функции ViewDontLoad класса ViewController есть textField, см. Ниже:

     class ViewController: UIViewController {
        var textField1 = UITextField()
        override func viewDidLoad() {
        super.viewDidLoad()

        textField1.frame = CGRectMake(20, 70, 300, 500)
        textField1.text = "Default"        
        self.view.addSubview(textField1)

В другом классе ContactData есть функция getContacts, которая будет вызываться в ViewController, в этом функции мне нужно обновить свойство текстов textField1, когда использование ViewController.textField1.text = "XXXXXX" ниже не работает, я новичок в IOS SWIFT, кто-нибудь может помочь мне решить эту проблему?

class ContactData: NSObject {    
    func getContacts()
{ViewController.textField1.text = "XXXXXX"}

Большое спасибо.

1 ответ

Решение

Это больше проблема дизайна здесь. Ваша функция getContacts не должен обновлять текстовое поле напрямую. Он должен вернуть строку контакта, и контроллер представления должен вызвать этот метод, чтобы получить строку и обновить текстовое поле.

class ContactData: NSObject {    
    func getContacts() -> String
    {
         return "XXXXXX"
    }
}

В вашем UIViewController:

let myContact = ContactData()
textField1.text = myContact.getContacts()
Другие вопросы по тегам