Split View-based Application
Xcode のテンプレートから UISplitViewController を選ぶ。
実行するとこんな画面が表示される。
縦にするとポップオーバー表示になる。
構成
構成イメージはこんな感じ。
UISplitViewController を構成するコントローラの指定はInterface Builder のインスペクタで設定してある。
UISplitViewController.viewControllers の中身はこう。
( "<UINavigationController: 0x4d2e290="">", "<DetailViewcontroller: 0x4d2e5f0="">" )UISplitViewController.view の構成はこう。
UIView |-UILabel |-UIToolbar |-UIToolbarTextButton |-UIPushButton UILayoutContainerView |-UINavigationTransitionView |-UINavigationBar |-UINavigationItemViewなるほど。
RootViewController は UINavigationController に載っているので、階層的なビューの切り替えができるようになっている。この辺りはこれまでの iPhoneアプリと同じようにできる。試しに SubViewController を良いして遷移させてみた。
RootViewController.m - (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { detailViewController.detailItem = [NSString stringWithFormat:@"Row %d", indexPath.row]; UIViewController* viewController = [[SubViewController alloc] initWithNibName:nil bundle:nil]; [self.navigationController pushViewController:viewController animated:YES]; [viewController release]; }
画面の回転により UISplitViewControllerDelegateのメソッドが呼び出される。
– splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
横 => 縦 により、左側のビューが隠れる時
– splitViewController:willShowViewController:invalidatingBarButtonItem:
縦 => 横 により、左側のビューが表示される時
– splitViewController:popoverController:willPresentViewController:
ポップオーバーが表示される時
ソースコード
サンプルはこちら。
SplitViewBaseSample at 2011-01-05 from xcatsan/iOS-Sample-Code - GitHub
Responses
Leave a Response