- 更新日: 2015年12月11日
- Swift & iOS
Navigation Controllerで画面遷移させるSwiftコード
先日の続きで、iOS/Swift でタップ/スワイプなどのイベントハンドラとして、ページ遷移させるメソッドを実装していた。タップしたら他の画面に遷移するみたいな処理です。
Swiftでタップ/スワイプのイベント処理実装(UITapGestureRecognizer/UISwipeGestureRecognizer) | EasyRamble
— 環境 —
Xcode 7.0
Swift 2.0
Mac OS X Yosemite 10.10.5
Navigation Controller で画面遷移させる
画面の遷移元も遷移先も、UINavigationController を利用していたので、以下のようなコードを書いて画面遷移を実現させました。
1 2 3 4 |
private func moveToPageViewController() { let pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! PageViewController self.navigationController?.pushViewController(pageViewController, animated: true) } |
それから、Storyboard で画面遷移先のコントローラーに、instantiateViewControllerWithIdentifier で指定する ID(Storyboard ID / Restoration ID)を設定します。
これで、遷移元画面でタップ/スワイプを検知したら、PageViewController の画面に遷移するという処理が上手く動作しました。
最初 Storyboard で Storyboard ID / Restoration ID を指定し忘れていて、以下のエラーが発生した。
1 2 3 |
fatal error: unexpectedly found nil while unwrapping an Optional value |
Storyboard 上での画面コントローラを識別できずに、PageViewController で設定していた IBOutlet の変数に nil が入ってしまっていたためです。上記のエラーが出た場合は、nil が入るべきではない変数に nil が入ってしまっているエラーかもしれない、と覚えておくと良いかな。
- – 参考リンク –
- ios – Present View Controller in Storyboard with a Navigation Controller – Swift – Stack Overflow
- ios – presenting ViewController with NavigationViewController swift – Stack Overflow
- PushViewControllerで横に画面遷移 – Swiftサラリーマン
- Swift での画面遷移メモ | てくのろ日記
- Swift & iOS の関連記事
- WKWebView/UIWebViewでウェブページが真っ白
- Unityのインストールと初期設定
- WKWebView/UIWebViewでNavigation Barの下にウェブページが隠れるのを回避
- SwiftでArray(配列)などをシャッフル
- Swiftでタップ/スワイプのイベント処理実装・UITapGestureRecognizerとUISwipeGestureRecognizer
- UIPageViewController画面下部のUIPageControlを非表示にする
- Swiftのバージョン確認・REPL実行
- Xcode7.0アップデートで遭遇した課題2つ
- 正規のXcodeかどうかチェック(XcodeGhostマルウェア騒動)
- WKWebViewでtarget=”_blank”のリンクを開く(Swift)
Leave Your Message!