1

iOS 5とストーリーボードを使用してiOS開発を開始したばかりで、次の問題を解決する方法を知りたいです。

私は、製品がツリーのノードであり、製品が葉であるカテゴリを持つツリー階層を持っています。特定のレベルですべてのノードを表示するためにTileViewControllerビューを作成しました。ユーザーがTileViewでノードを選択すると、そのタイプ(リーフまたは非リーフ)に応じて、新しいTileViewControllerをアプリケーションNavigationControllerにプッシュするか、DetailViewControllerを表示します。

私が現在行っていることは、すべてをプログラムで実行することです(つまり、ユーザーがTileViewControllerでクリックしたものを追跡し、NavigationControllerで次に何をプッシュするかを決定します)。ストーリーボードのハンドルを取得し、必要に応じて次のTileViewControllerを作成するために以下のコードを使用します。

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        TileViewController *controller =  [storyBoard instantiateViewControllerWithIdentifier:@"TileViewController"];
        controller.model = self.model;   
        [self.navigationController pushViewController:controller animated:YES];

私が理解できないのは、TileViewControllerのハードコーディングロジックの代わりにストーリーボードを使用してこれを作成する方法です。これは可能ですか?単一のTileViewControllerを使用し、ユーザーの選択に基づいて表示されたタイルをリロードすることを考えましたが、ナビゲーション部分が失われました。これをどのように達成できるかについてのアイデアはありますか?

ありがとうございました。

4

1 に答える 1

2

ナビゲーションを開始するUIコンポーネントからセグエを定義して、ストーリーボードの同じシーンに戻すことができます。ボタンからの場合は、Ctrlキーを押しながらボタンからタイルビューコントローラーを表す黄色の球体までドラッグします。

これをプッシュセグエとして定義し、prepareForSegueで関連する詳細を渡します。これにより、ストーリーボードで繰り返すことなく、無限のナビゲーションスタックが作成される可能性があります。

于 2012-05-26T16:09:42.627 に答える