Боковое меню SWRevealViewController не работает в Swift 3 - PullRequest
0 голосов
/ 15 мая 2018

Я использую SWRevealViewController для функциональности бокового меню.Работает нормально, но всякий раз, когда я добавляю следующий код в методе didFinishLaunchingWithOptions.боковое меню не работает при первом запуске.

Как решить эту проблему ??

это мой код:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {


   // UserDefaults.standard.synchronize()

  //  IQKeyboardManager.sharedManager().enable = true


    self.window = UIWindow(frame: UIScreen.main.bounds)

    guard UserDefaults.standard.object(forKey: "IsFirstTime") != nil  else {
        UserDefaults.standard.set(true, forKey: "IsFirstTime")

        self.window = UIWindow(frame: UIScreen.main.bounds)

        let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: "LaunchViewController") as! LaunchViewController
        let navigationController = UINavigationController.init(rootViewController: viewController)
        self.window?.rootViewController = navigationController

        self.window?.makeKeyAndVisible()





        return true
    }

    self.window = UIWindow(frame: UIScreen.main.bounds)

    let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
    let viewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
   // let navigationController = UINavigationController.init(rootViewController: viewController)
    self.window?.rootViewController = viewController

    self.window?.makeKeyAndVisible()





    return true
}

Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Здесь вы делаете LaunchViewController начальный VC при первом запуске. Вот почему он не работает с первого раза.

Чтобы использовать SWRevealViewController, вам нужны два контроллера вида, один - это контроллер вид спереди, который вы хотите показать в первый раз, а второй - для выдвижного ящика, который может быть tableViewController, который содержит все остальные контроллеры вида. Чтобы добавить SWRevealViewController, позвоните openDrawer() в AppDelegate.

func openDrawer() {

    let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
    let drawerVC = storyboard.instantiateViewController(withIdentifier: "idDrawerVC") as! RearVC
    let dashboardVC = storyboard.instantiateViewController(withIdentifier: "idFrontVC") as! FrontVC
    let frontNavigationController = UINavigationController(rootViewController: dashboardVC)

    let revealViewController = SWRevealViewController(rearViewController: drawerVC, frontViewController: frontNavigationController)
    revealViewController?.delegate = self
    revealViewController?.view.backgroundColor = .clear
    revealViewController?.modalTransitionStyle = .crossDissolve
    window?.rootViewController = revealViewController
}
...