Как обновить свойство из 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()