Несколько UIViews в viewcontoller? - PullRequest
       7

Несколько UIViews в viewcontoller?

0 голосов
/ 14 августа 2010

У меня есть контроллер uiview. В верхней части UIview есть 2 кнопки.

Я хочу загрузить 2 разных UIViews (маленький вид; ширина = 320, высота = 200) снизу, если пользователь нажимает кнопки. У меня есть uitableview в каждом smallview и некоторые элементы управления. Вот почему я хочу обрабатывать каждый пользовательский интерфейс с помощью собственных пользовательских контроллеров.

я думаю, что должен создать Uiview с CGRect и вызвать маленький uiviewcontroller при нажатии кнопки. но я не знаю как. спасибо

как я могу обрабатывать маленькие uiviews с их собственным uiviewcontroller и могу ли я создавать маленькие uiviews с IB?

Ответы [ 2 ]

1 голос
/ 14 августа 2010

Это определенно возможно, Apple не рекомендует, но для особых случаев, таких как ваш, я согласен, используйте его.

Мой метод:

Сделайте 2 контроллера представления таблицы subview безXIB-файлы, используйте -awakeFromNib для настройки, а не viewDidLoad, viewDidLoad не будет вызываться для них.(Дождитесь следующего шага, прежде чем настраивать контроллеры для загрузки ваших данных, вы не сможете отладить, пока этот шаг не сработает)

Теперь создайте третий контроллер с xib (не представлением таблицы) и откройтеXIB.Добавьте 2 UITableViewControllers из библиотеки в окно с владельцем файла, первым ответчиком и т. Д., Затем в инспекторе перейдите на последнюю вкладку - измените их классы на 2 пользовательских контроллера таблицы, которые вы создали.

Затем перетащите 2 табличных представления в главное представление и на вкладке соединений свяжите делегат и источник данных с одним контроллером для одного табличного представления и повторите с другим.Кроме того, выберите контроллеры и подключите их розетки к представлениям таблиц.

Затем вам нужно перейти в контроллер для основного вида с помощью xib и сделать выводы для контроллеров таблиц следующим образом:

 @interface class : UIViewController {
      UITableViewController *controller1;
      UITableViewController *controller2;
 }

 @property(nonatomic, retain) IBOutlet UITableViewController *controller1;
 @property(nonatomic, retain) IBOutlet UITableViewController *controller2;

важно использовать свойство, чтобы они были сохранены, и в разделе viewDidUnload обнулить их для управления памятью: self.controller1 = nil;

Теперь создайте и отправьте, и есливам удалось все это выполнить, у вас должны быть рабочие таблицы с контроллерами, готовые к настройке.

0 голосов
/ 14 августа 2010

Используйте решение Алекса для настройки ссылок на ваши табличные представления (Маленькие таблицы, как вы заявляете). Добавьте ваши кнопки во вложенный UIView и поместите код в методы действий ваших кнопок, чтобы поменять / поменять местами нужные представления на основе выбора кнопок.

- (IBAction) buttonSwapViewPressed:(id) sender {
    if (swapInView1) {
      controller1.view.hidden = NO;
      controller2.view.hidden = YES;
    } else {
      controller1.view.hidden = YES;
      controller2.view.hidden = NO;
    }

Ваша иерархия представлений будет выглядеть примерно так:

UIView   - Enclosing View
   UIButton - Swap Button
   UITableView - Table View 1
   UITableView - Table View 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...