xcode swift не меняет текст метки

У меня два взгляда. первый - это «homeView», второй - «detailView».

в HomeView у меня есть две кнопки button1 button2

подробнееПросмотреть на этикетке label1

когда я нажимаю button1, он должен измениться на «detailView», а label1.text должен быть «button 1 gedrückt», когда я нажимаю button2, он должен измениться на «detailView», а label1.text должен быть «button 2 gedrückt»

когда я использую код:

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

@IBAction func button1(sender: UIButton) {

    let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
    self.showViewController(vc as! UIViewController, sender: vc)


    // self.label1.text = "button 1 gedrückt"

}

вид изменится, но label1.text не изменится. если я использую

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

@IBAction func button1(sender: UIButton) {

    let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
    self.showViewController(vc as! UIViewController, sender: vc)


    self.label1.text = "button 1 gedrückt"

}

я получаю сообщение об ошибке:  введите описание изображения здесь

я не знаю, что я могу сделать ??


person euleec7    schedule 16.09.2015    source источник
comment
Проверьте подключение к label1 в раскадровке. Вероятная причина вашей проблемы в том, что он не подключен. Ссылка на свойство неявно отменяется, поэтому оно выйдет из строя, если вы попытаетесь получить к нему доступ, когда оно не подключено.   -  person Rich Tolley    schedule 16.09.2015


Ответы (2)


Убедитесь, что ваша этикетка подключена к вашей розетке или дублируется. Если все в порядке, попробуйте удалить соединение и подключить его снова. Изображение ниже иллюстрирует то, о чем я говорю.

введите здесь описание изображения

person adolfosrs    schedule 16.09.2015

Спасибо тоже всем. теперь я могу изменить текст в label1 с помощью этого кода

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "segueTest") {
        let svc = segue.destinationViewController as! SecondViewController;

        svc.toPass = label2.text

    }
}

теперь другой вопрос? Могу ли я поместить эту "функцию переопределения" в IBAction? потому что я хочу добавить больше кнопок. с каждой кнопкой должен быть другой текст в label1.

Спасибо (я абсолютный новичок в Xcode и Swift)

person euleec7    schedule 17.09.2015
comment
вообще-то нет. prepareForSegue будет вызываться каждый раз, когда вы переходите к другому представлению. нет необходимости помещать его в IBAction. Попробуйте ответить на другой вопрос о переполнении стека, чтобы немного лучше узнать, что происходит, чтобы мы могли решить ваши проблемы. - person adolfosrs; 17.09.2015