Swiftで遊ぼう! - 639 - Zoomania 8
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
- Table View実装チュートリアルをXcode7.2.1で解説
- Core Data シンプルチュートリアル
- 私の本業、オフィシャルなブログ-> Life-LOG
NavigationControllerを埋め込んだだけなのにAppDelegateでエラーが生じました。
この理由は単純です。最初にAppDelegateが設定しているrootViewControllerはViewControllerでした。しかし、NavigationControllerが埋め込まれた時点で、UINavigtionControllerに変更されたんです。
ちゃんと動かすためにリファレンス設定を変更するんです。
let rootViewController = self.window!.rootViewController as! ViewController rootViewController.context = self.managedObjectContext
AppDelegateのこのコードを次のように変更します。
if let nc = self.window!.rootViewController as? UINavigationController { let vc = nc.visibleViewController as! ViewController vc.context = self.managedObjectContext }
windowに直結するrootViewControllerがNavigationControllerなんで、NavigationControllerが表示しているViewControllerをrootViewControllerに設置するのに「vidibleViewController」プロパティを使います。「visibleViewController」を使った理由はここにあります。
これでランすると
再びちゃんと表示されるようになりました。実は結構悩んで試行錯誤を繰り返しています(^^;)
今日はこれだけ。