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()
이 stackoverflow 질문에서 탐색 컨트롤에 대한 더 많은 통찰력을 추가합니다. 도움이 될 수 있습니다. 질문에 직접 답하기 위해 다음과 같은 코드 설정을 찾고 있습니다.
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에 넣으면 ToolbarController의 rootViewController를 전환하면 전환됩니다. 외부에 배치하면 ToolbarController를 전환 할 수 있으며 MenuController는 뷰 계층 구조 내에 유지됩니다.
참고해야 할 한 가지 규칙은 left
및 right
컨트롤러가 항상 다른 모든 컨트롤과 겹치도록하기 때문에 항상 NavigationDrawerController를 가장 바깥 쪽 탐색 컨트롤로 배치 해야한다는 것입니다.
희망 :)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다