0

皆さんこんにちは

私は初心者の ios プログラマーで、アプリのページを切り替える必要があるときに多くの疑問に直面しています。

「ページ」という用語は、画面全体をいくつかのウィジェット (ボタン、テキストボックス、テーブルなど) で埋める UIView を意味します。

私が読んだことを理解している限り、各ページは画面に相当するコンテンツである必要があるため、UIViewController を使用してこれらの各ページを管理する必要があります。

私のアプリは、多くのボタンを持つ ViewScroller で始まり、ユーザーがこれらのいずれかをクリックすると、新しいページが開きます。

最初のページは、ウィンドウの RootController に接続された UIView です。

これまでのところ、新しいページを開くために、子コントローラーを RootController に追加します。これは、RootController のビューの子としてのビューです。

RicLocaliController = [[RicercaLocaliViewController alloc] initWithNibName:@"RicercaLocaliViewController" bundle:nil];

[self addChildViewController:RicLocaliController];

[RicLocaliController didMoveToParentViewController:self];        

[self.view addSubview:RicLocaliController.view];

RicLocaliController.view.frame = self.view.bounds;

ユーザーが「戻る」ボタンをクリックすると、子コントローラーと子ビューが削除されます。

この道をたどると、ビューを持つコントローラーの動的ツリーが得られます。

これまでのところ、問題は発生しておらず、アプリはツリーの 3 番目のレベルまで移動して戻ってくることができます。向きが変わっても、各ページは正しく動作します。

しかし、サブページごとに子コントローラーと子ビューを追加するのは適切ではないかもしれません。

スーパービューもこのイベントを管理するために何かを行うため、向きが変わったときに多くのページをネストすると、アプリの応答が遅くなる可能性があるのではないかと心配しています。

だから、私がやっていることは完全に無意味なのか、ページの変更を管理するためにナビゲーションコントローラーまたは他の方法を使用する必要があるのか​​ どうか疑問に思っています。

残念ながら、私の上司はこの主題を十分に研究するための十分な時間を与えてくれないので、最新の機能の代わりに、フレームワークによって提供される最も標準的で単純なコンポーネントを使用して、最善の解決策に従うようアドバイスをお願いします.

私はこの主題に関する多くの Web ページを読みましたが、ページ間のナビゲーションを管理する方法がたくさんあるように思われ、これが私を混乱させます。

私は英語が下手で申し訳ありませんが、私は疲れていて、英語は私の母国語ではありません.

4

2 に答える 2

3

あなたはいくつかの勉強をしなければなりません。そうしないと、後ですべての問題を解決するのにより多くの時間を費やすことになります... しかし、ここにいくつかのヒントがあります。

ネストされた ViewController を使用するとあらゆる種類の問題が発生するため、時間がない場合はスキップしてください。

各「ページ」を 1 つの ViewController と考えてください。ViewController には View というプロパティがありますが、これは実際にはビューの階層全体の最上位のビューにすぎません。ビューは、ラベルやボタンなどの視覚オブジェクトの基本クラスです。すべてのビューはサブビューを持つことができるため、ラベルの下に画像を追加したり、必要に応じて非常に奇妙なことを行うことができます。これは、ビューをどのように使用できるかについてあなたの心を解放するために言っているだけです。

現在、ViewController は 1 つのビュー階層にコードを保持することになっています。そのビュー階層は、そのビュー コントローラー専用です。

ユーザーが別のページに移動したい場合、いくつかの代替手段があります。

NavigationViewController - リスト内のアイテムの詳細ビューを開くなど、ユーザーがデータを詳しく調べたい場合に使用する必要があります。NavigationViewController は、戻るボタン、適切なアニメーションなどを支援します。ViewController を「ポップ」して移動します。 1レベル戻ります。ユーザーが戻るボタンをクリックすると、これは自動的に行われます。

TabBarViewController - 画面の下部にタブ バーが必要な場合に使用します。各タブは、独自のビュー階層を持つ ViewController に接続されています。

PushModal - ViewController を使用していて、アプリの通常のナビゲーションの一部ではないユーザーからデータを取得する必要がある場合は、新しい ViewController をモーダルにプッシュできます。これは、ViewController に組み込まれた iOS と対話する方法です。これは、View Controller から値を取得する良い方法でもあります。

そこにあります。もっと学びましょう。:)

于 2012-08-23T21:59:07.980 に答える
0

あなたが使用しているものについては、ナビゲーションコントローラーを使用する必要があるようです。これにより、ビューをスタックにプッシュし、後で再びポップすることが自動的に処理されます。これにより、ナビゲーション バーに戻るボタン (カスタマイズ可能) も自動的に作成されます。

iOS 5 または 6 を使用している場合は、Interface Builder で「ストーリーボード」を試すことを強くお勧めします。ストーリーボードを使用すると、異なるビュー間の遷移 (「セグエ」と呼ばれる) をグラフィカルに表すことができます。

設計と実装が容易であることに加えて、将来アプリケーションの設計を変更したい場合に、すべてのコードを調べて各ビュー接続を手動で更新する必要がないという別の利点もあります。

于 2012-08-23T22:00:34.250 に答える