Как добавить NavigationDrawerController и PageTabBarController в один проект
let pageTabBarController = AppPageTabBarController(viewControllers: [redViewController, greenViewController, blueViewController], selectedIndex: 0)
let toolbarController = AppToolbarController(rootViewController: pageTabBarController)
let menuController = AppMenuController(rootViewController: toolbarController)
window = UIWindow(frame: Device.bounds)
window!.rootViewController = menuController
window!.makeKeyAndVisible()
2 ответа
В этом вопросе о стековом потоке я добавлю больше информации о навигационных элементах управления. Вы можете найти это полезным. Чтобы прямо ответить на ваш вопрос, вы ищете код, который выглядит следующим образом:
import UIKit
import Material
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func applicationDidFinishLaunching(_ application: UIApplication) {
let redViewController = RedViewController()
let greenViewController = GreenViewController()
let blueViewController = BlueViewController()
let pageTabBarController = AppPageTabBarController(viewControllers: [redViewController, greenViewController, blueViewController], selectedIndex: 0)
let toolbarController = AppToolbarController(rootViewController: pageTabBarController)
let menuController = AppMenuController(rootViewController: toolbarController)
let leftViewController = LeftViewController()
let rightViewController = RightViewController()
let navigationDrawerController = NavigationDrawerController(rootViewController: menuController,
leftViewController: leftViewController,
rightViewController: rightViewController)
window = UIWindow(frame: Device.bounds)
window!.rootViewController = navigationDrawerController
window!.makeKeyAndVisible()
}
}
Основная идея заключается в том, что вы размещаете свои навигационные контроллеры (контроллеры, имеющие определенную навигационную функцию) друг над другом в слоях. Вы можете легко переставить контроллеры для создания различных потоков, и вы можете легко добавить больше навигационных контроллеров, таких как SnackbarController.
Порядок, в котором вы складываете контроллеры представления, зависит от того, как вы хотите, чтобы навигационные контроллеры работали. Например, если вы поставите MenuController
внутри ToolbarController он будет перемещаться после перехода rootViewController из ToolbarController. Разместив его снаружи, вы можете переместить ToolbarController, и MenuController останется в иерархии представления.
Обратите внимание на одно правило: вы всегда должны размещать NavigationDrawerController в качестве наиболее внешнего навигационного элемента управления, как left
а также right
контроллеры всегда должны перекрывать все остальные элементы управления.
Надеюсь, это поможет:)
let pageTabBarController = AppPageTabBarController(viewControllers: [redViewController, greenViewController, blueViewController], selectedIndex: 0)
let toolbarController = AppToolbarController(rootViewController: pageTabBarController)
let menuController = AppMenuController(rootViewController: toolbarController)
let navigationController = AppNavigationDrawerController(rootViewController: menuController, leftViewController: leftViewController,rightViewController: rightViewController)
window = UIWindow(frame: Device.bounds)
window!.rootViewController = navigationController
window!.makeKeyAndVisible()