Мое приложение строится исключительно программно на UITabBarController выше UINavigationController, которые оба объявлены в моем AppDelegate.Внутри моего контроллера навигации я показываю пользовательский класс UIViewController.Этот пользовательский класс должен отображать пользовательский UIView в UIScrollView и UIPageControl.
Вот моя проблема:
self.view , кажется, создает ошибку EXC_BAD_ACCESS , когдаЯ называю это без объявления self.view = [[UIView alloc] init] (или аналогичный).Мне было интересно, если это было проблемой с - (void) loadView , но похоже, что он выдает ту же ошибку в - (void) viewDidLoad .Поэтому мне пришлось использовать self.view = scrollView , чтобы даже показать мой scrollView, учитывая, что [self.view addSubview: scrollView] выдало ошибку.Мой UIPageControl должен оставаться на странице все время и фактически быть другой частью представления, чем UIScrollView.Поэтому я попытался добавить контейнерный вид, подобный этому
Код:
container = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,0,0)];
scrollView.pagingEnabled = YES;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.showsHorizontalScrollIndicator = NO;
// EDIT: ofcourse, I'm also resizing the frame with [scrollView setContentSize:] later, but this is farfetched code to add here.
[container addSubview:scrollView];
self.view = container;
К сожалению, кажется, что я вообще ничего не получил, и то, что кажется пустымПосмотреть.Однако, если я добавляю UILabel или подобное, оно показывает:
[container addSubview:[[UILabel alloc] initWithFrame:CGRectMake(50,50,50,50)]]; // entered above or beneath the addSubview:scrollView line.
Мой вопрос: почему мой scrollView не появляется в контейнере UIView?
Я заметил, что некоторыеВ руководствах говорится, что scrollView должен иметь делегата, и я согласен с логикой - однако я не могу понять, как установить этот делегат, когда я нахожусь в своем классе CustomUIViewController вместо моего AppDelegate.