Сначала убедитесь, что вызывается viewDidLoad. Существует множество способов инициализации экземпляра, и я не уверен, когда используется каждая из этих опций. Если используется initWithNibName, то viewDidLoad не будет вызываться, если я правильно помню. Чтобы убедиться, что метод вызывается, вы можете добавить оператор NSLog, например ...
NSLog(@"viewDidLoad: %@", NSStringFromClass([self class]));
Это будет показано в консоли отладчика, если он вызывается. Вы также можете добавить метод initWithNibName, чтобы узнать, вызывается ли он.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
NSLog(@"initWithNibName: %@", NSStringFromClass([self class]));
}
return self;
}
Я обнаружил, что раскадровки не работают так, как я ожидал. То, что я начал использовать, является контейнером. В них нет ничего особенного. Это просто визуальные элементы, которые вы можете разместить внутри представления, которые затем обертываются вокруг стандартного UIViewController, а затем в области конструктора отображается связанный вид с теми же размерами, что и вид контейнера, который вы поместили в другое представление. Тогда вы можете управлять деталями там. Если вам нужно обработать любую инициализацию с помощью родительского контроллера представления, вы будете использовать метод prepareForSegue. Вам нужно будет задать имя для встраиваемого перехода для представления контейнера (а не push-перехода, как вы обычно видите), и при его запуске вы можете получить доступ к destinationViewController, который является просто встроенным контроллером представления внутри представления контейнера. Чтобы понять это, может потребоваться некоторое время.
Также найдите UIPageViewController на вкладке Документация в Организаторе. В нижней части левого столбца приведен пример проекта, который может оказаться полезным.