WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [iPhone開発]UITableViewでドリルダウンしていくナビゲーション

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

iPhoneではおなじみのUITableViewでドリルダウンしていくナビゲーションを作ろうと思います。

ちょっと厄介です。

まず、あの階層構造を構築するのにUINavigationControllerを使います。UINavigationControllerはスタックになっていて、UIViewControllerのサブクラスであればなんでもpushできます。pushするとその表示がControllerにかわる感じです。

最初に表示されるViewはなんなのかというと、UINavigationControllerは中にRootViewControllerとしてViewControllerのサブクラスを持っていて、こいつを最初に表示します。

この辺の設定はInterfaceBuilderでやることになります。InterfaceBuilderでNavigationControllerをMainWindow.xibにドロップして、NavigationController内のRootViewControllerのクラスを自分で作成したクラスに変更してやります。

指定したViewControllerは自動でインスタンス化されるので、テーブルのセルが選択されたときにUINavigationControllerに新しいViewControllerをpushします。


- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
SecondLevelViewController *nextController = //なにか新しいViewController

[self.navigationController pushViewController:nextController animated:YES];
}
didSelectRowAtIndexPathはUITableViewDelegateののメソッドで、テーブルの行が選択された時に呼ばれます。UINavigationControllerにスタックされたViewControllerからはnavigationControllerでUINavigationControllerを参照できるようです。ここに新しいViewControllerを追加してってやれば、どんどん深い階層のナビゲーションを作れます。

階層を戻っていくのはどうするのかというと、InterfaceBuilderでUINavigationControllerを使った場合は何もしなくても、戻る動作もボタンも実装されます。すごい!
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。