0
iOS 5で搭載された
ページコントローラー
Masayuki Nii
Cocoa Study #51
2012/3/17
12年3月17日土曜日

1
Agenda

ページビューの階層化
UIPageViewControllerとテンプレート
動作を確認する
利用例

12年3月17日土曜日

2
ビューコントローラの階層化
従来からある複数のビューコントローラ

•
•
•
•

ナビゲーションコントローラ、タブコントローラ
複数のビューコントローラを持つビューコントローラ=コンテナビューコントローラ
1ページを複数のビューコントローラ...
ビューコントローラの階層化

UIViewControllerに追加されたプロパティ

•
•

childViewControllers:所属しているビューコントローラの配列
parentViewController:自分の親のビューコントロ...
ビューコントローラの階層化を利用したクラス
UIPageViewControllerによるページめくりビュー

•
•

iOS 5より登場したクラスで、ページめくり機能を提供するビューコントローラ
1つ1つのページが「ビューコントローラによっ...
さて、ページビューを使ってみよう!

とはいえ、これはAPIだけだとさっぱりわからん

•

サンプルプログラムもない

プロジェクトのテンプレートに「Page-Based
Application」がある

•
•
•

12年3月17日土曜日...
「Page-Based Application」によるアプリケー
ションのオブジェクト関係
UIApplicationMain
UIApplication

生成
AppDelegate
プロパティ参照

delegate

MainStory...
動作をチェックする

BookViewer_Starterプロジェクト

•

メソッドのエントリーにNSLogを入れてある

次のような動作を調べる

•
•
•
•
•

12年3月17日土曜日

iPadシミュレータを縦長にしておく
Ch...
作成例

PhotoAlbum

•

アプリケーションバンドル内の写真をページとして表示する

BookViewer

•
•
•
•

サンプルのPDF:http://msyk.net/ios/sample1.pdf
いわゆるPDFビューア...
まとめ

ページビューは「APIの問題」ではなく、一定のオブ
ジェクトの配置を想定した「パターンを持つクラス」で
あった

12年3月17日土曜日

10
Upcoming SlideShare
Loading in...5
×

Cocoa勉強会#51-iOS 5で搭載されたページコントローラー

564

Published on

Cocoa勉強会#48
2012/3/17
全画面、ファイル履歴、Lionの新しい機能に対応する
新居雅行

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
564
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Cocoa勉強会#51-iOS 5で搭載されたページコントローラー"

  1. 1. iOS 5で搭載された ページコントローラー Masayuki Nii Cocoa Study #51 2012/3/17 12年3月17日土曜日 1
  2. 2. Agenda ページビューの階層化 UIPageViewControllerとテンプレート 動作を確認する 利用例 12年3月17日土曜日 2
  3. 3. ビューコントローラの階層化 従来からある複数のビューコントローラ • • • • ナビゲーションコントローラ、タブコントローラ 複数のビューコントローラを持つビューコントローラ=コンテナビューコントローラ 1ページを複数のビューコントローラで管理する iOS 5で、汎用的に利用できるようになった UIViewControllerクラスに追加されたメソッド • • • • • • • -addChildViewController: -removeFromParentViewController transitionFromViewController:toViewController:duration:options:animations:com pletion: -willMoveToParentViewController: -didMoveToParentViewController: -automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers 独自にUIViewControllerの継承クラスを作るときにはさまざまなメソッドのオーバライ ドができる 12年3月17日土曜日 3
  4. 4. ビューコントローラの階層化 UIViewControllerに追加されたプロパティ • • childViewControllers:所属しているビューコントローラの配列 parentViewController:自分の親のビューコントローラ その他注意点 • • 12年3月17日土曜日 -presentViewController:animated:completion:によってビューを 表示 -presentModalViewController:animated:メソッドは使わずに、 上記のメソッドを使うようにと記述されている 4
  5. 5. ビューコントローラの階層化を利用したクラス UIPageViewControllerによるページめくりビュー • • iOS 5より登場したクラスで、ページめくり機能を提供するビューコントローラ 1つ1つのページが「ビューコントローラによって管理されるビュー」 UIPageViewControllerクラス • • • • -initWithTransitionStyle:navigationOrientation:options::初期化メソッド -setViewControllers:direction:animated:completion::ビューコントローラの登録 dataSource:データソース/delegate:デリゲート/viewControllers:登録されているビュー コントローラ/gestureRecognizers:ジェスチャー navigationOrientation:方向/spineLocation:スピンの位置/transitionStyle:ビュー移動の 形式/doubleSided:2面表示 UIPageViewControllerDataSourceクラス • • • • • 12年3月17日土曜日 -pageViewController:viewControllerBeforeViewController::次のビューコントローラを返す -pageViewController:viewControllerAfterViewController::前のビューコントローラを返す UIPageViewControllerDelegateクラス -pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:: ページ移動後に呼び出される -pageViewController:spineLocationForInterfaceOrientation::方向に応じたスピン位置を返す 5
  6. 6. さて、ページビューを使ってみよう! とはいえ、これはAPIだけだとさっぱりわからん • サンプルプログラムもない プロジェクトのテンプレートに「Page-Based Application」がある • • • 12年3月17日土曜日 シンプルな動作である これを開いてみてビックリ! ある独特なパターンを想定したクラスだった 6
  7. 7. 「Page-Based Application」によるアプリケー ションのオブジェクト関係 UIApplicationMain UIApplication 生成 AppDelegate プロパティ参照 delegate MainStoryboard window RootViewController rootViewController UIWindow viewControllers iPad画面 window DataViewController modelController delegate dataSource PageViewController viewControllers ModelController DataViewController DataViewController 12年3月17日土曜日 7
  8. 8. 動作をチェックする BookViewer_Starterプロジェクト • メソッドのエントリーにNSLogを入れてある 次のような動作を調べる • • • • • 12年3月17日土曜日 iPadシミュレータを縦長にしておく Check! 起動して縦長の1ページ目が出るまでの動作 Check! 1ページ分めくったときの動作 Check! 回転させる Check! 横長で1ページをめくる 8
  9. 9. 作成例 PhotoAlbum • アプリケーションバンドル内の写真をページとして表示する BookViewer • • • • サンプルのPDF:http://msyk.net/ios/sample1.pdf いわゆるPDFビューアで、SfariよりPDFを供給する APIは拡大するとやや荒れるもの ブラウザから開く これらのサンプルは勉強会の中だけにしてください 配布はしないでください 12年3月17日土曜日 9
  10. 10. まとめ ページビューは「APIの問題」ではなく、一定のオブ ジェクトの配置を想定した「パターンを持つクラス」で あった 12年3月17日土曜日 10
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×