#ios #swift #swift5 #side-menu
#iOS #swift #swift5 #боковое меню
Вопрос:
Я использую Cocoapod ‘SideMenu’, и я скопировал и вставил код для добавления контроллеров представления в мой AppDelegate.swift, как он говорит, и все хорошо, кроме addPanGesture и addScreenEdgePanGesture. Вот мой код для всего моего AppDelegate.swift:
import UIKit
import SideMenu
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
// Define the menus
let leftMenuNavigationController = SideMenuNavigationController(rootViewController: UIViewController())
SideMenuManager.default.leftMenuNavigationController = leftMenuNavigationController
let rightMenuNavigationController = SideMenuNavigationController(rootViewController: UIViewController())
SideMenuManager.default.rightMenuNavigationController = rightMenuNavigationController
// Setup gestures: the left and/or right menus must be set up (above) for these to work.
// Note that these continue to work on the Navigation Controller independent of the view controller it displays!
SideMenuManager.default.addPanGestureToPresent(toView:
self.navigationController.navigationBar)
SideMenuManager.default.addScreenEdgePanGesturesToPresent(toView: self.navigationController.view)
// (Optional) Prevent status bar area from turning black when menu appears:
leftMenuNavigationController.statusBarEndAlpha = 0
// Copy all settings to the other menu
rightMenuNavigationController.settings = leftMenuNavigationController.settings
}
// MARK: UISceneSession Lifecycle
// If you need your SideMenu to appear from the right side
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
}
Если кто-нибудь знает, что мне нужно добавить, чтобы устранить эти проблемы, пожалуйста, дайте мне знать!
Комментарии:
1. Ваш
AppDelegate
не определяетnavigationController
. Вы можете либо использовать свойUIWindow
экземпляр, чтобы получить ссылку наUINAvigationController
из корняUIViewController
, либо переместить эту логику в свой кореньUIViewController
. Я предлагаю вам взглянуть на пример проекта (в этом проекте автор не инициализировал SideMenu в AppDelegate): github.com/jonkykong/SideMenu/tree/master/Example