2015-04-20 4 views
1

Я бы хотел отобразить статические элементы управления (4 кнопки внизу & NotificationBar наверху) на всех экранах. Эти элементы управления должны быть доступны на всех экранах.Переключатель нескольких контроллеров представления в контроллере Single View iOS

Я хочу показать соответствующие страницы (при нажатии) между этими двумя элементами управления. (т. е.) между панелью уведомлений и кнопками.

Так как я могу это сделать?

Я не хочу добавлять эти элементы управления в каждый контроллер вида, который делает более сложным.

У меня есть идея реализации вида контейнера. Но не знаю, является ли это правильным решением для моей проблемы. Так любезно предложите мне решить мою проблему?

Схема приведена ниже:


   Notification Bar 

< < < < < < < < < соответствующую страницу для отображения >>>>>>>>>>


Кнопка 1 Кнопка 2 Button3 Button4


Так предложить мне решить эту проблему?

ответ

0

Вот сценарий:

  1. Поместите другой тег (от 0 до 3) для кнопок
  2. Свяжите кнопки с тем же IBAction
  3. В вашем верхнем контроллере, хранить каждый ViewController в массив
  4. В методе IBAction позвоните по номеру [_myViewControllersArray objectAtIndex:button.tag]; и отобразите соответствующий вид.
  5. Пользователь [_containerView addSubview:controller.view];
+0

Надеюсь, это может решить мою проблему. Я попробую это решение. Спасибо ... :) –

+0

Итак, это уместно с вашими потребностями? –

2

Если Ваше отношение содержания является видом UIViewController, когда вы делаете addSubview :, пожалуйста, попробуйте следующий код:

[controller willMoveToParentViewController:_containerViewController]; 
[_containerViewController.view addSubview:controller.view]; 
[_containerViewController addChildViewController:controller]; 

И если убрать некоторый вид представления контроллера из его супер вид, вы должны сделать:

[controller removeFromParentViewController];

[controller.view removeFromSuperview];

[controller willMoveToParentViewController:nil];

Такой способ может сделать свой метод появления UIViewController назвать правильно.

+0

Спасибо за ваш ответ. Можете ли вы объяснить подробнее ..? –

+0

willMoveToParentViewController: & didMoveToParentViewController: должно быть сопряжено на самом деле. Но addChildViewController: будет делать didMoveXXXX и removeFromXXX: будет делать willMoveXXX :, так что вам просто нужно сделать, как указано выше. Вы можете увидеть детали в apple doc при обсуждении метода didMoveToParentViewController:. – user3349433

Смежные вопросы