2016-01-19 1 views
-4

, когда вы нажимаете кнопку в моем приложении, вы должны быть переведены на другой контроллер представления, а метка во втором диспетчере представлений должна быть установлена ​​на новый текст, но это работает только для передачи на второй контроллер представления, если я не добавляю код, чтобы текст надписей изменился. то появляется эта ошибка: thread 1 exc_bad_instruction (code = exc_i386_invop subcode = 0x0)thread 1 exc_bad_instruction (code = exc_i386_invop subcode = 0x0) при нажатии кнопки

И да, оба диспетчера разрешений имеют одинаковые контроллеры представлений, установленные для них.

если вы знаете ответ, пожалуйста, оставьте комментарий на этот пост :)

@IBAction func done(sender: UIButton) {     
let countInMeters = count * 6 
    metersTest.text = "apr \(countInMeters) meters" 
} 
+1

Что такое 'count'? это 'meterTest', конечно, не' 'nil'? – luk2302

+2

Другая возможность заключается в том, что ibaction прошел «rouge», т. Е. Ваша кнопка была отключена от этого действия. Попробуйте повторно инициализировать эти соединения с нуля (ctrl-drag). – dfri

+0

Возможно, вы захотите рассмотреть это, прежде чем задавать свой следующий вопрос: http://stackoverflow.com/help/how-to-ask –

ответ

0

Из формулировки Вашего вопроса кажется вы пытаетесь изменить элемент управления на целевой контроллер представления в коде управление, принадлежащее исходному контроллеру представления.

Это никогда не сработает, потому что, когда вы находитесь в коде кнопки контроллера исходного вида. Ваш meterTest.text, вероятно, является членом исходного контроллера и, вероятно, не связан ни с чем. Он, конечно, не может быть подключен к целевому контроллеру, который является совершенно другим объектом.

Если вам необходимо перенести данные между контроллером вида, вы можете перехватить переход между ними в точке, когда у вас есть доступ как к оригиналу, так и к цели. Например, если вы переопределите func prepareForSegue (_ segue: UIStoryboardSegue, отправитель отправителя: AnyObject?) В вашем исходном контроллере представления, вы можете назначить данные целевому контроллеру в этой точке.

+0

, так как бы я отредактировал свой код, хотя Ален Т. –