2015-04-02 3 views
0

У меня проблема с написанием быстрого кода внутри подготовки к segue. Я написал код, чтобы перенести запись внутри моего текстового поля на метку на другое представление, но это упало, когда я перешел на другую страницу.Изменение ярлыка в prepareforsegue

var motionMovement : SecondViewController = segue.destinationViewController as SecondViewController 
motionMovement.laBel.text = teXt.text 

Затем я добавил добавил этого не сделать его падение

if segue.identifier == "hi"{ 
     var motionMovement : SecondViewController = segue.destinationViewController as SecondViewController 
     motionMovement.laBel.text = teXt.text 
    } 

Но теперь это не меняет этикетку.

+0

Где он падает на другой странице? Какая строка кода? –

ответ

1

Выпускное не выделяться, когда вы используете его в prepareForSegue: .Вы должны создать String переменную в SecondViewController хранить текст метки в prepareForSegue:, а затем в viewDidLoad в SecondViewController установить его в нужное UILabel

в SecondViewController

var labelString: String? 
viewDidLoad() { 
    laBel.text = labelString 
} 

и prepareForSegue

if segue.identifier == "hi"{ 
    var motionMovement : SecondViewController = segue.destinationViewController as SecondViewController 
    motionMovement.labelString = teXt.text 
} 
+0

Теперь, когда я сделал это, он пропустил ярлык, несмотря ни на что. – tom3377

+0

@ tom3377. По моему опыту, присваивание значения должно быть в 'viewWillAppear', а не' viewDidLoad'. Надеюсь, это все равно поможет вам – MoonKnight

Смежные вопросы