Навигация по панели исчезает с AKSideMenu - PullRequest
0 голосов
/ 24 июня 2019

Я использую AKSideMenu для создания бокового меню.Я настраиваю некоторые пользовательские настройки, чтобы позволить пользователю настраивать меню.У меня есть пункты настройки, настроенные на настройках VC с переключателем UIS для каждого элемента.Я обнаружил, что при включении / выключении элемента новый параметр не реализуется, пока не будет перезапущен rootViewController.Чтобы попытаться это исправить, у меня есть функция, которая представляет предупреждение.Предупреждение содержит код для повторного создания корневого контроллера.

Проблема, с которой я столкнулся на первых порах, заключалась в том, что «contentViewController» для бокового меню был жестко запрограммирован, поэтому при запуске кода предупреждения вместо просмотра VC предпочтений показывался contentViewController / Home VC.Чтобы исправить эту проблему, я создал переменную «thecCntentViewController» для хранения идентификатора «contentViewController».Для тех, кто не знаком с AKSideMenu, VKS с идентификатором StoryBoard «contentViewController» будет использоваться в качестве домашнего VC для AKSideMenu.Я установил для cCntentViewController значение «Preferences_VC», и теперь при настройке UIS-переключателя на экране остается VC «Preferences VC».

У меня все работает, кроме одного глюка.Панель навигации исчезает при запуске кода предупреждения.Preferences VC встроен в NavigationColtroller.Может кто-нибудь сказать мне, что нужно изменить, чтобы предотвратить исчезновение навигационной панели?

    @IBAction func scaleContectSwitchTapped(_ sender: UISwitch)
    {
        if sender.isOn == true
        {
            do
            {
                if try Database.shared.databaseConnection!.run(theTable.update (scaleContent <- "true")) > 0
                {
                    scaleTheContent = true
                    presentAlert()

                } else {
                    print("scaleContent not found")
                }
            } catch let error as NSError {
                print("Update failed! Error:\(error.description)")
            }
        } else {
            do
            {
                if try Database.shared.databaseConnection!.run(theTable.update(scaleContent <- "false")) > 0
                {
                    scaleTheContent = false
                    presentAlert()

                } else {
                    print("scaleContent not found")
                }
            } catch let error as NSError {
                print("Update failed! Error:\(error.description)")
            }
        }
    }

    func presentAlert()
    {
        let alert = UIAlertController(title: "Configure the Side Menu",
                                      message: "The Side Menu needs to be reloaded after modifying key preferences.",
                                      preferredStyle: .alert)
        let confirmButton = UIAlertAction(title: "OK", style: .default) { (_) in
            thecCntentViewController = "Preferences_VC"
            let sideMenuController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "rootController")
            UIApplication.shared.keyWindow?.rootViewController = sideMenuController

        }
        alert.addAction(confirmButton)
        present(alert, animated: true, completion: nil)
    }

if let storyboard = self.storyboard {
// This is the code in the rootViwController
      self.contentViewController = storyboard.instantiateViewController(withIdentifier: thecCntentViewController)
      self.leftMenuViewController = storyboard.instantiateViewController(withIdentifier: "leftMenuViewController")
      self.rightMenuViewController = storyboard.instantiateViewController(withIdentifier: "rightMenuViewController")
}

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
//        navigationController?.setNavigationBarHidden(false, animated: false)
        navigationController?.navigationBar.isHidden = false
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...