У меня есть четыре сцены в моей раскадровке. Одна сцена действует как родитель для всех остальных через представления контейнера. Все устроено так:

Если вы прищуритесь, вы заметите, что все четыре являются подклассами одного и того же контроллера представления. Я сделал это, чтобы можно было подключить элементы каждой сцены к одному общему контроллеру представления и избежать четырехкратного подкласса UIViewController. Реализация ProductDetailViewController выглядит так:
@implementation ProductDetailViewController {
// Scene 1
__weak IBOutlet UINavigationBar *_navigationBar;
// Scene 2
__weak IBOutlet UILabel *_productName;
// Scene 3
__weak IBOutlet UILabel *_typeNameLabel;
__weak IBOutlet UILabel *_categoryNameLabel;
__weak IBOutlet UIImageView *_richImage;
// Scene 4
__weak IBOutlet UIImageView *_productImageView;
}
Проблема в том, что viewDidLoad срабатывает четыре раза (очевидно), и все отображается пустым. Когда я прохожу через отладчик, объект продукта, который я передаю, равен nil в течение трех циклов, а затем инициализируется на четвертом. Может быть, контроллеры представления загружаются не по порядку?
В любом случае, эту настройку вообще можно делать? Я думаю, что должен быть лучший способ избежать подкласса контроллера представления для каждой сцены раскадровки.