Несмотря на количество похожих сообщений по этому вопросу, у меня все еще есть проблемы с правильной работой. У меня есть два UIViewControllers, которые я разработал в IB с UILabels и изображениями и т. Д. Я хотел бы добавить их в список прокрутки, чтобы их можно было переадресовать между ними.Добавление представлений viewController в UIScrollView
У меня есть выходы, определяющие подключение каждого из scrollViewcontrollers со своими элементами в IB, однако сами контроллеры я программно создаю из контроллера главного представления в viewDidLoad. После их создания я назначаю некоторые значения из контроллера главного представления, а не добавляю его в качестве подсмотра в scrollViewController. Однако ничего не отображается. Из отладки, которую я выполнил, когда я установил точку прерывания после назначения значений, я вижу, что элементы равны нулю. Они должны быть загружены из файла xib, но, похоже, не читаются. Даже в качестве теста я попытался инициализировать один из элементов (например, UILabel) и установить его на этот контроллер подвид, но он ничего не отобразил. Вот немного кода, чтобы объяснить немного лучше.
В контроллере Master View
detailControllerA *tempA = [[detailControllerA alloc] initWithNibName:@"detailOverviewA" bundle:nil];
self.overviewA = tempA;
[tempA release];
self.overviewA.someLabel.text = @"Some Text";
detailScrollView.contentSize = CGSizeMake(scrollWidth, scrollHeight);
detailScrollView.pagingEnabled = YES;
[detailScrollView addSubview:self.overviewA.view];
В реализации detailControllerA я установить раму в loadView:
-(void)loadView {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 90)];
self.view = view;
[view release];
}
Я также этикетки и т.д., определенный с IBOutlets в detailControllerA.h и реализованы к элементам в файле xib.
Любые идеи, почему xib неправильно загружается при создании программно?
Я предполагаю, что вам нужно вызвать [super loadView], прежде чем что-либо делать. Несмотря на то, что вы загрузили из nib, я уверен, что loadView по-прежнему является тем, что требуется для создания вашего представления в контроллерах. –
По-прежнему не повезло :( – taylormade201
Я понял, . Интересно, что проблема - (void) loadView была проблемой. Поскольку представление создается в построителе интерфейса (с настройками фрейма), когда loadView запускается, он создавал новый вид, сдувая тот, который был создан в построителе интерфейса. – taylormade201