2010-12-30 15 views
0

私はiPhone開発を開始しており、あるビューから別のビューに移動しようとしています。iphone - あるビューから別のビューに移動する

私は基本的に私のアプリのメニューとして機能するメインビュー(NearestPhotosViewController)を持っています。私は2番目のビュー(DisplayNearestPhotos)を持っています。

私はWeb(html)の背景から来ているので、私はここでWeb用語でやってみたいのは、NearestPhotosViewControllerビューのボタン(リンク)をクリックしてDisplayNearestPhotosビューを表示することです。

私はこれを行うためのいくつかのコードを探しています(私はhtmlのequivelentを行うのと同じくらい簡単だとは思わない)。

次のコードは、メニュービューのボタンに接続されています。

上記のコードは動作します(2番目のビューが表示されます)が、正しい方法は何ですか?そうでない場合、あるビューから別のビューに移動する正しい方法は何ですか?

ありがとうございました

答えて

4

何をしようとしているかによって異なります。モーダルビューは、アプリのフローの一時的な中断に適しています。決定的な順序を持つビューの結束フローを提供しようとしている場合は、自然な流れでUINavigationControllerpushpopビューを使用します。あなたがいつでも選択できる独特のビューのセットを持っているなら、UITabBarControllerが適切でしょう。本当に、それはアプリケーションのデザインと、ユーザーがあなたのアプリとやり取りする方法を決定するものです。

私がやることは、座って、アップルのread this articleさんがあなたの処分で得たものを理解することです。それで、私は座って、デザインあなたのアプリがどのように整理されるのが最適でしょうか。

征服してください。

追加情報:

Modal View Controllers
Navigation Controllers
Tab Bar Controllers

+0

ウェインに感謝します。私はこれらの記事を今読んでおり、本当に役に立ちます。私はナビゲーションベースのコントローラにアプリを変更するつもりです:) – tmutton

+0

@ codemonkey恐ろしい!これは真剣に聞こえるかもしれませんが、Appleには素晴らしいドキュメントがあります。不確かな場合はいつでも、Appleが推奨するものを参照してください。 –

1

私はiPhoneの開発を開始してしまった方法がthree20 projectしていました。サンプルアプリケーションTTCatalogを見ると、Web開発の背景を持つ人々にアピールする興味深いパターンが見えます。このような

彼らは(この場合は、ビュー・コントローラ)クラスに「のURL」のマッピングを設定

:three20プロジェクトからの方法を使用して

TTURLMap* map = navigator.URLMap; 
[map from:@"*" toViewController:[TTWebController class]]; 
[map from:@"tt://catalog" toViewController:[CatalogController class]]; 
[map from:@"tt://photoTest1?" toViewController:[PhotoTest1Controller class]]; 
[map from:@"tt://photoTest2" toViewController:[PhotoTest2Controller class]]; 
[map from:@"tt://imageTest1" toViewController:[ImageTest1Controller class]]; 

、あなたが言う、のために「URL」を設定することができます、UITableViewCelltt://photoTest1となると、PhotoTest1Controllerのビューがメインスタックにポップされます。これは非常に便利で、始めるには素晴らしい方法です(さらに、コードを見て、そこからいくつかの偉大なパターンを拾い上げることが有用であることがわかりました)。

希望すると便利です。

1

あなたのデザインによって異なります。アプリケーションに適切な画面フローがある場合、UINavigationControllerは適切なオプションです。これを使用して、ボタンをクリックすると他の画面に移動できます。 UINavigationController自体は画面のスタックを保持し、前の画面に戻るための戻るボタンを提供します。したがって、スクリーンフローを維持することは容易である。 デザインに通常の画面フローとは別の画面がある場合は、モーダルViewコントローラーを使用して画面を表示できます。これは画面の流れを妨げません。例えば、アプリケーションにルート画面があり、情報画面を表示する場合は、モーダル表示コントローラーを使用して情報画面を表示できます。 使用するメソッドは、画面アニメーションに影響します。モーダルビューコントローラは、ナビゲーションが画面を右から左に提示する間、画面を下から提示する。 タブバークリックで異なる画面を表示する場合は、UITabBarControllerを使用します。 また、アプリケーションに記載されているすべてのタイプの組み合わせを使用できます。

関連する問題