2015-04-23 2 views
1

У меня есть VC1, который переходит в VC2. У VC2 есть некоторые UIImageView, которые должны отображаться в viewDidLoad() - однако при первом приземлении на VC2 изображения не отображаются. Если я перейду к следующей странице приложения, вернитесь к VC2, изображения теперь есть. Я проверил, и UIImageView не ноль в первый раз, когда вы приземляетесь на VC2, поэтому я не уверен, почему они не появляются в первый раз и почему они появляются все время? Мой код VC2 ниже:UIImageView не отображаются при первом просмотре при переходе к другому контроллеру View

@IBOutlet weak var nameTitle: UILabel! 

@IBOutlet weak var safeIcon: UIImageView! 

@IBOutlet weak var eaIcon: UIImageView! 


override func viewDidLoad() { 

    super.viewDidLoad() 
    self.nameTitle.text = "\(firstName)'s Safe".uppercaseString 

    self.safeIcon.image = UIImage(named: "safe icon") 
    self.eaIcon.image = UIImage(named: "EA Logo") 

    println(safeIcon) 

} 

Я интересно, если это не имеет ничего общего с SEGUE от VC1 к VC2, что делается в функции, как это:

func segueToApp(sender: AnyObject) -> Void { 

    self.performSegueWithIdentifier("loginSuccess", sender: self) 

} 

Любые идеи?

+0

Не совсем ответ, но что произойдет, если вы установите изображения в 'viewWillAppear', а не' viewDidLoad'? Помогает ли это, или это одно и то же? – gregheo

+0

Вы правильно связали safeIcon и eaIcon @IBOutlets с раскадрой. Похоже, что они не связаны должным образом, связь может происходить между 1-й нагрузкой и 2-й нагрузкой. поэтому проверьте правильность привязки или нет. – Trident

+0

@gregheo Пробовал это, но тот же результат –

ответ

0

Я нашел решение, и, я думаю, здесь не было достаточной информации - функция segueToApp вызывалась из сеанса NSURL (после того, как был восстановлен некоторый JSON). Раньше я не вызывал функцию из основной очереди, но когда я сделал, UIImageViews начали появляться на VC2 в первый раз.

dispatch_async(dispatch_get_main_queue()) { 
      self.segueToApp(self) 
} 
Смежные вопросы