2008-10-26 4 views
1

У меня есть контроллер табуляции, к которому я добавил UIViewController на каждую вкладку. Я хочу иметь несколько UIView внутри UIViewController.добавление нескольких видов для просмотра контроллера внутри контроллера табуляции

Итак, в реализации класса UIViewController я добавил [self.view addSubView: uiview1] и [self.view addSubView: uiview2]. Проблема заключается в том, что когда я запускаю приложение, он загружается при загрузке.

Однако, если я использовал только один UIView и сделал: self.view = UIView1, который будет работать нормально.

Кто-нибудь знает, что вызывает проблему? Или если я делаю что-то принципиально неправильно?

ответ

3

Предполагая, что вы делаете это программно, вы должны создать представление в методе loadView диспетчера вида. Таким образом, вы должны сделать это:

self.view = [[[UIView alloc] initWithFrame:someFrame] autorelease]; 

, прежде чем это сделать:

[self.view addSubview:uiview1]; 
[self.view addSubview:uiview2]; 

В противном случае self.view будет равна нулю.

+1

Это не так. Представление UIViewController создано для вас бесплатно, если вы не переопределяете - (void) loadView. Просто добавьте subviews в - (void) viewDidLoad. – Amagrammer 2009-07-25 14:50:57

1

Нет причин, по которым вы не можете иметь несколько видов в своей основной переменной элемента представления UIViewController. Тем не менее, в вашем вопросе осталось немало вопросов:

  • Как вы получаете view1 и view2?
  • Являются ли они выходными в вашем XIB-файле (вы используете XIB-файл или создаете все в коде), или вы создаете их в коде?
  • В каком подклассе UIViewController вы добавляете их в переменную-член вида?
  • Какое сообщение выводится на консоль при ее сбое?
Смежные вопросы