Боковое меню с панелью навигации, которая выдвигает только контент

У меня проблема с реализацией бокового меню следующим образом:

введите здесь описание изображения

Дело в архитектуре. Я пытаюсь выяснить, какой компонент будет AppDelegate, Window, rootViewController (UINavigationController/UIViewController) (и я знаю, что UINavigationController — это UIViewContoller).

Я продумывал несколько вариантов, но ни один из них не подходил под мою задачу.

Основными проблемами были:

  1. NavigationBar должен оставаться на месте (не толкать в сторону)
  2. Контент (без навигационной панели) нужно отодвинуть в сторону вместе с боковым меню

Любая помощь будет более чем приветствуется.

Заранее спасибо.


person gran33    schedule 05.04.2015    source источник
comment
Я бы предложил использовать настройку, о которой я говорю в своем ответе здесь, stackoverflow.com/questions/29425646/   -  person rdelmar    schedule 05.04.2015


Ответы (1)


У вас есть корневой элемент UINavigationController, который показывает панель навигации вверху.

NavController содержит UICollectionViewController, который содержит UICollectionView, который содержит два "полноэкранных" UICollectionViewCells рядом друг с другом.

Когда вы хотите отобразить sideMenu, вы меняете макет коллекции (в данном случае это, скорее всего, UICollectionViewFlowLayout).

Это должно занять вас на неделю, поэтому вы можете проверить своего клиента, действительно ли они хотят платить за это или они будут довольны чем-то немного другим + дополнительными функциями, которые вы могли бы делать за то же время. Если они хотят платить, то есть множество удивительных вещей, которые вы можете сделать с просмотром коллекции!

person JOM    schedule 05.04.2015
comment
Спасибо @JOM! Я разбираюсь в этом наконец. Я добавил UIViewController в качестве rootVC. Поверх него я добавил 2 подвида: 1.UINavigationController 2.UIViewController бокового меню. Теперь каждый раз, когда я хочу переключить боковое меню, я просто добираюсь до UINavigationController.topViewController.view и анимирую его, чтобы отодвинуть в сторону. Соответственно перемещаю боковое меню для выхода на экран (с х=-200 на х=200) - person gran33; 06.04.2015