1

Я хочу создать приложение, в котором моя панель навигации отображается на всех страницах. Когда я нажимаю на любую строку бокового меню (сделано через SWRevealViewController), я хочу, чтобы страница открывалась, чтобы на ней была панель навигации. На изображении ниже я хочу, чтобы та же самая панель навигации, что и HomeViewController на странице с меткой «Меню». Как я могу это сделать? Пожалуйста помоги. Я новичок в iOS. Я делаю это в Xcode 8 и Swift 3. Here is the imageSWRevealViewController with NavigationController - Swift 3

EDIT: Я хочу что-то вроде этого: enter image description here я поместил кнопку бокового меню на раскрыть вид контроллера. Я могу видеть это на контроллере внешнего вида во время выполнения, но как подключить цель и действие opensviewcontroller, чтобы открыть боковое меню? Если это будет сделано, моя проблема с контроллером навигации на странице с меткой «Меню» будет решена автоматически.

+0

Root Посмотреть контроллер вашего SlideBar должен храниться внутри контроллера UINavigation. –

+0

Как я могу это достичь? – Mamta

+0

Put NavigationController -> RevealController -> front (Home controller) -> Rear (SideMenuController) – Amanpreet

ответ

1

Предположим выхода из меню является btn_Menu. С точки зрения диспетчера загрузился я задал действие кнопки бара и целевым программным способом.

btn_Menu.target = self.revealViewController() 
btn_Menu.action = #selector(SWRevealViewController.revealToggle(_:)) 

Посмотрите на эту структуру изображения, которая вам нужна. К сожалению, не очень понятно, но, возможно, решить проблему:

enter image description here

+0

. Вопрос: где я могу создать выход этой кнопки? Поскольку для этого класса контроллера установлен SWRevealViewController – Mamta

+0

Кнопка «Путь» на контроллере домашнего просмотра. Сделайте выход здесь, в доме. – Amanpreet

+0

Я сделал это в своем первоначальном вопросе, но это не соответствует цели получения панели навигации на ярлыке «Меню». – Mamta

0

Вам нужно добавить все стартовые точки вашего ViewControllers в NavigationController, так что в этом случае вам необходимо встроить ViewController который имеет метку меню в NavigationController и сделать SEGUE меню стороной к NavigationController не ViewController

надеюсь, что мой ответ поможет вам

+0

обязательно проверьте отредактированный вопрос. Я хочу, чтобы та же панель навигации на контроллере домашнего просмотра, а также контроллер вида, имеющий метку «Меню» – Mamta

+0

, вы могли бы сделать подкласс от uiviewcontroller «BaseViewController», а в его viewDidLoad сделать его программным путем, добавив кнопки в навигационную панель и все контроллеры просмотра, которые вы будет отображаться из меню наследовать от «BaseViewController» и вставлять их в navigationController –

+0

. Я не получил вас – Mamta

0

Кроме того, необходимо добавить Navigation Controller для бара контроллера SABE Выполните следующие действия:

Выбор боковой панель viewcontroller > go to Editior menu > Embed in > Click Navigation Controller

+0

, пожалуйста, проверьте отредактированный вопрос. Я хочу, чтобы та же панель навигации на контроллере домашнего просмотра, а также контроллер вида с меткой «Меню» – Mamta

+0

Вы хотите использовать ту же навигационную панель manu с названием «Menu» для боковой панели? –

+0

да, я хочу, чтобы та же панель навигации на титульном листе «Меню» и HomeViewController – Mamta

0

1) создать новый ViewController класс под названием «BaseViewController»

2) в BaseViewController viewDidLoad добавить следующий код и изменить имена и целевые изображений также добавить левую кнопку меню

let btn1 = UIButton(type: .custom) 
    btn1.setImage(UIImage(named: "imagename"), for: .normal) 
    btn1.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
    btn1.addTarget(self, action: #selector(Class.Methodname), for: .touchUpInside) 
    let item1 = UIBarButtonItem(customView: btn1) 

    let btn2 = UIButton(type: .custom) 
    btn2.setImage(UIImage(named: "imagename"), for: .normal) 
    btn2.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
    btn2.addTarget(self, action: #selector(Class.MethodName), for: .touchUpInside) 
    let item2 = UIBarButtonItem(customView: btn2) 

    self.navigationItem.setRightBarButtonItems([item1,item2], animated: true) 

3) сделать viewControllers, которые вы будете показывать в боковом меню, как один с ярлыком меню наследует от BaseViewController и это viewDidLoad сделать его называют super.viewDidLoad()

4) встраивать viewControllers который вы покажете из бокового меню в navigationController

0

Использование Container View может помочь.

Замените UIView в середине (Контент) на вид контейнера, и этот контейнер может быть UINavigationController. И чтобы избежать наличия 2 NavigationBars, вы можете скрыть навигационную панель ContainerView.

Синий выделен вид является ContainerView внутри контроллера, который реализует SideMenu

enter image description here

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