часов спустя ....
Мое решение
Как отмечалось выше, я наконец нашел подсказку в том, что суб-представления viewDidLoad не запускались до тех пор, пока я не выполнил всю свою инициализацию для кнопок и еще много чего, подразумевая, что перо переписывал всю мою инициализацию.
Одним из решений, которое сработало, было сделать представление прокрутки делегатом подпредставлений ...
@interface CBScrollViewController : UIViewController
<***CBFullScreenViewControllerDelegate***, UIScrollViewDelegate> {
...etc...
и затем инициализировать все, вызывая функцию в делегате из viewDidLoad подпредставления.
CBFullScreenViewController.h
@protocol CBFullScreenViewControllerDelegate
- (UIImage *)imageForFullScreenView:(CBFullScreenViewController *)controller;
@end
CBScrollViewController.m
- (UIImage *)imageForFullScreenView:(CBFullScreenViewController *)controller {
NSUInteger page = controller.pageNumber;
CBImage *image = [imageArray objectAtIndex:page];
UIImage *pixels = [CBDataAccess pixelsForImage:image];
return pixels;
}
<Ч />
Еще лучшее решение
В конце концов, проблема была архитектурной. Первый способ, которым я реализовал это, - все мои элементы управления были продублированы, поскольку каждое представление было перенесено на место, что было и уродливо, и расточительно.
Приведенный выше код показывает, что у меня не было ничего в моих подпредставлениях, кроме UIImageView, потому что все элементы управления действительно нужно было загрузить только один раз: неподвижно перемещаться по изображению. Загрузка пера для одного полноэкранного просмотра - это полное излишество.
Лучшее решение - использовать Interface Builder для более сложного макета представления прокрутки с имеющимися у меня кнопками и скользящей информационной вкладкой, но оставить Interface Builder вне этого для подпредставлений, которые можно так же легко загрузить. программным способом.