2017-01-17 5 views
0

У меня есть табличный вид в виде бокового меню на элементе ViewController xib, который нужно добавить в качестве подзаголовка, нажав на конкретную кнопку меню. Кнопка выхода из системы существует в нижней части меню. Я хочу выполнить popToRootViewController нажатием кнопки логотипа.Боковое меню скрыть вопрос

Я добавляю меню, как это:

menuViewController?.view.frame = self.transparentView.frame 
menuViewController?.didMove(toParentViewController: self) 
menuViewController?.view.frame.size.width = (mapView.frame.size.width)/1.5 
menuViewController?.view.tag=10 
self.transparentView.addSubview((menuViewController?.view)!) 
+0

Укажите, пожалуйста, код и четко сообщите, что вы хотите достичь? –

+0

Просьба представить свои блоки кода, где вы столкнулись с проблемой? Попробуйте использовать: REFrostedViewController для слайд-меню, его простой в использовании и заглавный –

+0

см. Я обновил свой вопрос –

ответ

1

если у вас есть одноцепочечных Navigation Controller в приложении вы можете легко использовать ниже код для навигации по RootViewController.

let appDelegate = UIApplication.shared.delegate as! AppDelegate 

if let navigationController = appDelegate.window?.rootViewController as? UINavigationController { 
    navigationController.popToRootViewController(animated: true) 
} 

Надеюсь, это поможет.

+0

Я ценю ваш комментарий, но мне нужно что-то другое. Мой сценарий таков: у меня есть боковое меню, написанное в объектном классе c с xib, которое я показываю с помощью метода представления, а не push, тогда я хочу выполнить метод выхода, который может перемещаться по мне корневой контроллер.Я регистрируюсь через facebook, если пользователь уже зарегистрировался, тогда делегат приложения напрямую перейдет на целевую страницу, а не на страницу fb logging. Еще одна вещь - весь мой код в раскадровке с быстрым, кроме бокового меню, которое находится в объективе c. –

+0

Итак, нужен ли вам такой же код в Objective C или выше код не работает с вашей стороны? – CodeChanger

+0

Нет, код выше не работает –

1

Используйте NotificationObserver для достижения этой цели.

Objective-C

В вашем viewDidLoad метод записи mainViewController в приведенном ниже коде.

[[NSNotificationCentre defaulCentre] addObserver:self withName:"LoggoutNotificationMessage" selector:@selector(shouldLogout:) withObject:nil]; 

теперь добавить этот метод в этом классе

-(void) shouldLogout { 
    //Code to Pop to Root VC 
} 

Теперь в вашем ViewController классе, где вы реализовали стороне меню, то Tableview делегат и источник данных.

В didSelectRowAtIndexPath: метод записывается ниже строки.

[[NSNotificationCentre defaultCentre] postNotification:"LoggoutNotificationMessage" withObject:nil] 

Swift 3,0 // в главной ViewController.swift-х viewDidLoadMethod

NotificationCenter.default.addObserver(self, selector: #selector(shoudLogout), name: NSNotification.Name(rawValue: "LogoutNotificationMessage"), object: nil) 


@objc func shoudLogout() { 
    //Pop to root vc here 
} 

Теперь в вашем ViewController классе, где вы реализовали стороне меню, то Tableview делегат и источник данных.

В didSelectRowAtIndexPath: метод записывается ниже строки.

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "LogoutNotificationMessage"), object: nil) 
Смежные вопросы