storyboardを使わず、Swiftでナビゲーションバーをつくる(UINavigationControllerとか)
http://qiita.com/mochizukikotaro/items/f053495eb130e92e13e8
ドロワーメニュー(MMDrawerController)を、Swiftで使う
http://qiita.com/m1takahashi/items/e47c829ade34b4727631
【ゴール】
上記2つを参考にして、メイン画面を中心にNavigationControllerで遷移を実装しつつ、各画面からドローワーが使えるようにしたい
【構造】
起動時に表示されるrootView:NavigationController
NavigationContollerのrootView:DrawerController
DrawerControllerのrootView:MainViewController
【問題】
NavigationControllerのrootViewが真っ黒のViewになってしまう(読み込まれていない)
【コード】
Swift
1AppDelegate 2 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 internal var window: UIWindow? 7 8 var myNavigationController: UINavigationController? 9 10 var drawerViewController: SideMenuViewController! 11 var drawerController: DrawerController! 12 var noteMainViewController: MainViewController! 13 14 15 /* 16 アプリケーション起動時に呼び出されるメソッド. 17 */ 18 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 19 /* 20 let mainView: MainViewController = MainViewController() 21 myNavigationController = UINavigationController(rootViewController: mainView) 22 self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 23 self.window?.rootViewController = myNavigationController 24 self.window?.makeKeyAndVisible() 25 */ 26 27 //ドローワー 28 // 中央に表示するビューコントローラー 29 noteMainViewController = MainViewController() 30 31 // 左メニューに表示するビューコンローラー(Drawer) 32 drawerViewController = SideMenuViewController() 33 34 // ドロワーコントローラーに、左メニューと中央画面をセット 35 self.drawerController = DrawerController(centerViewController: noteMainViewController, leftDrawerViewController: drawerViewController) 36 37 self.drawerController.showsShadows = false // 影付き 38 self.drawerController.restorationIdentifier = "Drawer" 39 self.drawerController.maximumLeftDrawerWidth = 240.0 // 幅240 40 self.drawerController.openDrawerGestureModeMask = .All // タッチ操作を全て受け付ける 41 self.drawerController.closeDrawerGestureModeMask = .All 42 43 self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 44 let tintColor = UIColor(red: 29 / 255, green: 173 / 255, blue: 234 / 255, alpha: 1.0) // 文字色 45 self.window!.tintColor = tintColor 46 //ドローワーここまで 47 48 //NavigationViewのrootをDrawerContollerに設定 49 //let mainView: MainViewController = MainViewController() 50 let drawerController : DrawerController = DrawerController() 51 myNavigationController = UINavigationController(rootViewController: drawerController) 52 self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 53 self.window?.rootViewController = myNavigationController 54 self.window?.makeKeyAndVisible() 55 56 //ドローワー 57 // ルートビューにセット 58 /* 59 self.window!.rootViewController = self.drawerController 60 self.window?.makeKeyAndVisible() 61 return true 62 */ 63 //ドローワー 64 65 66 return true 67 } 68
DrawerControllerを起動時に表示するrootViewに設定すると、Drawer自体はきちんと動きました。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。