2016-09-08 2 views
0

У меня возникли проблемы с моей функцией segue, я пытаюсь передать итоговый результат ко второму представлению, но не отображается на ярлыке, это то, что у меня есть для моей функции segue:Нет отображения оценки на последнем ScoreViewController Swift

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let destinationScore : ScoreViewController = segue.destinationViewController as! ScoreViewController 

    destinationScore.scoreBoard?.text = String(finalScore) 
    NSLog(String(finalScore)) 
} 

Это второй контроллер.

@IBOutlet weak var scoreBoard: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 


} 

PS: Мой NSLog отображает окончательный результат на терминале, но не на этикетке. Спасибо

ответ

0

Выполнение команды readyForSegue, содержимое (включая просмотр и просмотр) ScoreViewController еще не загружено. Таким образом, метка scoreBoard была равна нулю, когда вы устанавливаете значение для метки. Поэтому лейбл scoreBoard не может показать ваш результат.

Чтобы решить эту проблему:

  • Вы бы лучше добавить свойство var score: String в ScoreViewController, а затем назначить текст для этикетки в viewDidLoad функции.

  • В prepareForSegue назначьте свойство оценки вместо метки scoreBoard.

+0

его работа сейчас! спасибо ... так что отправляйте данные прямо на ярлык, чтобы их лучше хранить в var и отображать в viewDidLoad? –

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