2016-03-20 4 views
0

У меня такая ситуация:Как дождаться загрузки вида в контейнере?

У меня есть UIViewControllerVC1, который имеет вид контейнера. Этот вид контейнера содержит еще один UIViewController - VC2. Мне нужно установить свойство в VC2 и после того, как было установлено обновление текстов на некоторых ярлыках, которые подключены к VC2 как IBOutlet s. Я могу получить доступ к VC2, выполнив segue, который я создал в раскадровке с идентификатором «segueToVC2». Я вызываю метод performSegueWithIdentifier после того, как было установлено свойство VC1 - PROPERTY1, то есть я вызываю performSegueWithIdentifier в методе didSet PROPERTY1. Дело в том, что вид VC2, который удерживается в виде контейнера, еще не загружен, а IBOutlets, которые я подключил к VC2, - все ноль. Это приводит к сбою моего приложения.

Как решить эту проблему?

Заранее спасибо.

+0

Если вы настроили представление контейнера в раскадровке, вы можете просто настроить свой VC2 в 'prepareForSegue' без ручного вызова' performSegue'. –

ответ

0

Хорошо, что мне удалось решить эту проблему таким же образом, что я имел дело с VC1: Я установил необходимое свойство VC2 непосредственно из AppDelegate и все работало нормально.

0

Я не уверен, что такое IBOutlets, еще не запрограммировал Objective-C. Кроме того, я не уверен, почему вам нужно использовать performSegueWithIdentifier, так как вы сообщаете нам, что VC2 содержится в виде контейнера.

Вид контейнера в VC1 связан с VC2 с использованием встроенного сегмента. Вы получите копию VC2 в prepareForSegue, а в viewDidLoad или viewWillAppear вы можете установить свойство VC2.

Вот как я это делаю на Xamarin.iOS в любом случае. Удачи.

0

Вы должны установить свойства (текст, цвет и т. Д.) IBOutlets в VC2 в методе viewDidLoad. Теперь, чтобы установить эти значения из VC1, вы должны создать некоторые свойства на VC2 для хранения данных, которые вы хотите передать с VC1 на VC2. Затем в методе «prepareForSegue» в VC1 задайте свойства, которые вы хотите использовать на VC2. И затем в VC2 viewDidLoad используйте эти свойства, чтобы обновить IBOutlets.

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