2013-07-18 6 views
0

Как вы видите на изображении ниже, я применил контроллер навигации для возврата назад и вперед. Это хорошо работает.Контроллер навигации в ViewController - iOS

Мой вопрос заключается в том, как реализовать другой контроллер навигации на странице TableViewController. Всякий раз, когда пользователь нажимает на любой столбец, он берет его для подробной информации о выбранном столбце.

Я хотел бы знать, как вы могли бы реализовать навигационный контроллер на странице.

enter image description here

+0

Вы изучили 'UISplitViewController'? Пример учебника: http://iosmadesimple.blogspot.in/2013/05/uisplitviewcontroller-landscape.html и – Roshit

+0

Я знаю, но я не хочу работать с UISPlitViewController – casillas

ответ

0

UISplitViewController кажется лучшим решением, что вы собираетесь, но так как вы заявили, вы не хотите использовать его, позволяет получить на прямой вопрос. Нет ничего, что помешало бы вам программно создать UINavigationController, инициировав его с помощью некоторого контроллера представлений и добавив упомянутый UINavigationController в качестве подсмотра текущего контроллера представления.

Таким образом, у вас будет ваш основной навигационный контроллер, который на данном представлении имеет контроллер вида, содержащий табличный вид слева, и вид карты справа. Когда пользователь нажимает соответствующую запись в таблице, вы добавляете контроллер навигации к текущему контроллеру представления, размеру/расположению, но вы хотите (скажем, под картой или, возможно, над картой, полностью скрывая ее?). Когда пользователь хочет удалить навигационный контроллер (возможно, нажав на другую запись в таблице?), Просто удалите навигационный контроллер subview.

Вам, вероятно, потребуется добавить указанный контроллер навигации в качестве childViewController, чтобы он мог получить все аккуратные вызовы функции вращения и прочее. Я действительно определил, какие добавить представление в качестве childViewController и subview, а затем удалить его по мере необходимости. Конечно, это предполагает, что у вас есть представление, к которому вы добавляете навигационный контроллер; и вы хотите, чтобы навигационный контроллер занимал весь вид (так что размер изображения соответственно)

#define addChildViewController(childController, parent) { \ 
    [self addChildViewController:childController]; \ 
    childController.view.frame = CGRectMake(0,0,parent.frame.size.width,parent.frame.size.height); \ 
    [parent addSubview:childController.view]; \ 
    [childController didMoveToParentViewController:self]; \ 
} 

#define removeChildViewController(child) { \ 
    [child willMoveToParentViewController:nil]; \ 
    [child.view removeFromSuperview]; \ 
    [child removeFromParentViewController]; \ 
} 
Смежные вопросы