같은 프로젝트에 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()
CosmicMind

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와 같은 탐색 컨트롤러를 더 쉽게 추가 할 수 있습니다.

뷰 컨트롤러를 스택하는 순서는 탐색 컨트롤러의 동작 방식에 따라 다릅니다. 예를 들어,를 MenuControllerToolbarController에 넣으면 ToolbarController의 rootViewController를 전환하면 전환됩니다. 외부에 배치하면 ToolbarController를 전환 할 수 있으며 MenuController는 뷰 계층 구조 내에 유지됩니다.

참고해야 할 한 가지 규칙은 leftright컨트롤러가 항상 다른 모든 컨트롤과 겹치도록하기 때문에 항상 NavigationDrawerController를 가장 바깥 쪽 탐색 컨트롤로 배치 해야한다는 것입니다.

희망 :)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

$ (SRCROOT)와 같은 기호를 Xcode 프로젝트의 빌드 설정에서 사용하려면 어떻게 추가합니까?

분류에서Dev

매개 변수와 같지 않은 목록에 숫자를 추가하려면 어떻게합니까?

분류에서Dev

Android 앱 프로젝트에 사용자 지정 UI (포토샵 같은 프로그램 사용)를 추가하려면 어떻게해야합니까?

분류에서Dev

루비와 같은 프로그래밍 언어에서 EXCEL 함수 RATE를 어떻게 재현합니까?

분류에서Dev

GitHub에서 찾은이 Python 프로젝트를 어떻게 실행합니까?

분류에서Dev

JsFiddle.net에서 이와 같은 코드를 어떻게 실행합니까?

분류에서Dev

Netbeans C 프로젝트에 실제 폴더를 어떻게 추가합니까?

분류에서Dev

여만 프로젝트에 Browserify를 어떻게 추가합니까?

분류에서Dev

장고 프로젝트에 환경 변수를 어떻게 추가합니까?

분류에서Dev

[Dart]와 같이 목록에 데이터를 동적으로 추가하려면 어떻게해야합니까?

분류에서Dev

이와 같은 응용 프로그램 창에 색조를 지정하려면 어떻게합니까?

분류에서Dev

Codepen과 같은 Vue 3 CLI 프로젝트를 어떻게 마운트합니까?

분류에서Dev

다른 사람의 프로젝트를 현재 프로젝트에 어떻게 추가합니까?

분류에서Dev

다른 사람의 프로젝트를 현재 프로젝트에 어떻게 추가합니까?

분류에서Dev

ë와 같은 악센트 부호가있는 문자를 입력하려면 어떻게해야합니까?

분류에서Dev

HAML의 일반 텍스트와 같은 줄에 Ruby IF 문을 어떻게 추가합니까?

분류에서Dev

Excel에서 이와 같은 차트를 어떻게 얻을 수 있습니까?

분류에서Dev

open62541과 같은 복잡한 프로젝트를 어떻게 분석합니까?

분류에서Dev

Django CMS를 프로젝트에 추가 한 후 관리 명령이 캐시 오류와 함께 실패합니다. 어떻게 고칠 수 있습니까?

분류에서Dev

내가 맡은 프로젝트에 대한 배포를 어떻게 처리합니까?

분류에서Dev

has_many 및 devise_for와 같은 전역 Rails 도우미를 어떻게 추가합니까?

분류에서Dev

같은 변수를 어떻게 추가합니까?

분류에서Dev

파이썬에서 203045와 같은 형식의 시간에 어떻게 추가합니까?

분류에서Dev

열린 새 창에 배경이나 입력 상자와 같은 것을 어떻게 추가합니까?

분류에서Dev

개수가 숫자와 같은 R 변수의 테이블 함수에서 어떻게 추출합니까?

분류에서Dev

repo와 같은 데비안 포트를 어떻게 만들 수 있습니까?

분류에서Dev

jquery 및 css로 이와 같은 하프 슬라이더를 어떻게 구현합니까?

분류에서Dev

열 사이에 부트 스트랩 추가와 같이 행 사이에 수직 거터를 어떻게 추가합니까?

분류에서Dev

Parse / Mongo로 Quora와 같은 'upvote'를 어떻게 구현할 수 있습니까?

Related 관련 기사

  1. 1

    $ (SRCROOT)와 같은 기호를 Xcode 프로젝트의 빌드 설정에서 사용하려면 어떻게 추가합니까?

  2. 2

    매개 변수와 같지 않은 목록에 숫자를 추가하려면 어떻게합니까?

  3. 3

    Android 앱 프로젝트에 사용자 지정 UI (포토샵 같은 프로그램 사용)를 추가하려면 어떻게해야합니까?

  4. 4

    루비와 같은 프로그래밍 언어에서 EXCEL 함수 RATE를 어떻게 재현합니까?

  5. 5

    GitHub에서 찾은이 Python 프로젝트를 어떻게 실행합니까?

  6. 6

    JsFiddle.net에서 이와 같은 코드를 어떻게 실행합니까?

  7. 7

    Netbeans C 프로젝트에 실제 폴더를 어떻게 추가합니까?

  8. 8

    여만 프로젝트에 Browserify를 어떻게 추가합니까?

  9. 9

    장고 프로젝트에 환경 변수를 어떻게 추가합니까?

  10. 10

    [Dart]와 같이 목록에 데이터를 동적으로 추가하려면 어떻게해야합니까?

  11. 11

    이와 같은 응용 프로그램 창에 색조를 지정하려면 어떻게합니까?

  12. 12

    Codepen과 같은 Vue 3 CLI 프로젝트를 어떻게 마운트합니까?

  13. 13

    다른 사람의 프로젝트를 현재 프로젝트에 어떻게 추가합니까?

  14. 14

    다른 사람의 프로젝트를 현재 프로젝트에 어떻게 추가합니까?

  15. 15

    ë와 같은 악센트 부호가있는 문자를 입력하려면 어떻게해야합니까?

  16. 16

    HAML의 일반 텍스트와 같은 줄에 Ruby IF 문을 어떻게 추가합니까?

  17. 17

    Excel에서 이와 같은 차트를 어떻게 얻을 수 있습니까?

  18. 18

    open62541과 같은 복잡한 프로젝트를 어떻게 분석합니까?

  19. 19

    Django CMS를 프로젝트에 추가 한 후 관리 명령이 캐시 오류와 함께 실패합니다. 어떻게 고칠 수 있습니까?

  20. 20

    내가 맡은 프로젝트에 대한 배포를 어떻게 처리합니까?

  21. 21

    has_many 및 devise_for와 같은 전역 Rails 도우미를 어떻게 추가합니까?

  22. 22

    같은 변수를 어떻게 추가합니까?

  23. 23

    파이썬에서 203045와 같은 형식의 시간에 어떻게 추가합니까?

  24. 24

    열린 새 창에 배경이나 입력 상자와 같은 것을 어떻게 추가합니까?

  25. 25

    개수가 숫자와 같은 R 변수의 테이블 함수에서 어떻게 추출합니까?

  26. 26

    repo와 같은 데비안 포트를 어떻게 만들 수 있습니까?

  27. 27

    jquery 및 css로 이와 같은 하프 슬라이더를 어떻게 구현합니까?

  28. 28

    열 사이에 부트 스트랩 추가와 같이 행 사이에 수직 거터를 어떻게 추가합니까?

  29. 29

    Parse / Mongo로 Quora와 같은 'upvote'를 어떻게 구현할 수 있습니까?

뜨겁다태그

보관