JASidePanelsで表示したtableViewをMenuにするとして、選択したCellからの遷移の実装を知る。
仕事でios開発できないのでせっかく作ったけど忘れやすいのでメモ
前提
- cocoapodsはinstall済
- xcode6.2
- swift使う
- swiftでcocoaPodsのライブラリJASidePanels使ってみる
手順
JASidePanelsインストール
- 新規プロジェクト作成:JASidePanels_Menu_Sample
- Podfile新規作成
.
├── JASidePanels_Menu_Sample
├── JASidePanels_Menu_Sample.xcodeproj
├── JASidePanels_Menu_SampleTests
└── Podfile
pod 'JASidePanels'
$ pod install
インストール後に開くプロジェクトは.xcworkspaceになる
Bridging-Headerを作る
これしないとswiftでcocoaPodsのライブラリが使えない
- JASidePanels_Menu_Sample.xcworkspaceでプロジェクトを起動
以下ページを参考にBridging-Headerを作る
http://qiita.com/tamanyan/items/201bdd8063452d620a66
JASidePanels_Menu_Sample-Briding-Header.h
#import "JASidePanelController.h"
#import "UIViewController+JASidePanel.h"
sidePanelの実装
メニューから遷移するのは3画面。
表示するcenterViewController1〜3はStoryboad上でNavigetionControllerを3つ作ってそれぞれのStoryboad IDをcenterViewController1〜3にしたもの。
色分けしてわかりやすくしている。
JASidePanelControllerを親クラスにMySidePanelControllerViewControllerを作成
override func awakeFromNib() {
self.leftPanel = self.storyboard?.instantiateViewControllerWithIdentifier("MenuViewController") as UIViewController
self.centerPanel = self.storyboard?.instantiateViewControllerWithIdentifier("centerViewController1") as UIViewController
}
menu部分
UITableViewControllerで作った。
Cellを押下して表示するコントローラー部分は以下のような感じで出し分ける。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
switch indexPath.row {
case 0:
self.sidePanelController.centerPanel = self.storyboard?.instantiateViewControllerWithIdentifier("centerViewController1") as UIViewController
break
case 1:
self.sidePanelController.centerPanel = self.storyboard?.instantiateViewControllerWithIdentifier("centerViewController2") as UIViewController
break
case 2:
self.sidePanelController.centerPanel = self.storyboard?.instantiateViewControllerWithIdentifier("centerViewController3") as UIViewController
break
default:
break
}
おしまい
これを使ってはやくそれっぽいアプリを作れるようになりたいものです。