Итак, у меня есть контроллер вида, который имеет свойство IBOutlet, которое дает контроллеру представления доступ к добавленному представлению (вид, перетаскиваемый в контроллер просмотра в файле раскадровки, класс представления также имеет UILabel свойство outlet) Я пытаюсь изменить текст класса uilabel в классе. Сначала я пробовал напрямую, используя view.label.text = "некоторый текст", но это не сработало. Затем я написал функцию в классе вида, чтобы установить текст ярлыка, магически это сработало. Почему первый способ не работает, а второй?Swift Доступ к IBOutlet из другого класса
class Controller : UIViewController {
@IBOutlet weak var answerResultView: AnswerResultView!
@IBAction func button(sender : AnyObject){
answerResultView.text = "some text" //this line doesn't work
answerResultView.setText("some text")
}
}
class TheView : UIView {
@IBOutlet weak var label : UILabel!
func setText(text : String){
label.text = "Some text"
}
}
спасибо за любой ответ
Что означает «не работает»? – jtbandes
Убедитесь, что вы получаете доступ к выходам _after_ 'viewDidLoad()' вызывается для контроллера представления, которому принадлежат розетки. До этого они не инициализируются. –
Вы назвали обе функции одновременно? – Lumialxk