-1

私のiOSアプリケーションのビューを切り替えるために、私はModal View Controllerを使用しています。それは正常に動作しますが、この悪いコーディングの練習ですか?私のアプリのメモリ使用に有害でしょうか?View Controller間の効率的な切り替え

詳細情報を求めるコメントに応じて、私が切り替えているビューは通常の情報表示です。

  • メインビュー:私は私のアプリをナビゲートするための3つのビューを使用していますインフォビュー
  • 特定の情報ビューにナビゲートするためのボタンを持っている:情報
  • Web表示用に特定のウェブページに移動するためのボタンを持っています: UIWebviewを通じて情報を表示します

私は、 "戻る"と "ホーム"をナビゲートするための上部に即時ナビゲーションバーがあり、メインページを行います。

全体的に見て、これは他のビューのメニューを備えた構造のウェブアプリケーションです。私はそれが具体的に何を明らかにしたくないのです(それは私の考えです)。しかし、これは十分な情報であるべきです。

私は現在、このようなビューを切り替えるしています:

newViewController *newView = [[newViewController alloc] init]; 
[self presentModalViewController:newView animated:YES]; 

は、回答に基づいて、これまで、モーダルビューを迅速かつ一時的にアニメーションを表示するために意図されているが、私はより恒久的なアプローチを探しています。

良い方法がありますか?あなたの回答をサンプルコードで提供してください。ありがとうございました!

編集:元々十分な情報がないことをお詫び申し上げます。私はもっ​​と多くの情報を投稿しました。他に必要なものがある場合は、コメントしてください。

+0

これはアプリの全体的な構造に完全に依存します。詳細がなければ、この質問に合理的に回答することはできません。 – PengOne

+0

私はもともと十分な情報がないことをお詫びします。私はもっ​​と多くの情報を投稿しました。他に必要なものがある場合は、コメントしてください。 – DGund

答えて

2

モーダルビューコントローラを使用するのは、Appleの「メッセージ」アプリケーションによって「新しいメッセージ」コントローラが表示されるときなど、一時的にビューを表示する必要がある場合に通常予約されます。もう少しセットアップが必要ですあなたが欲しいものを行うための別の方法は、次のとおりです。両者の違いを概説

[self.navigationController pushViewController:newView animated:YES]; 

素敵な説明はhereだけでなく、スタックオーバーフローherehere上の質問を見つけることができます。 UINavigationControllerを設定する方法についてのちょっとしたチュートリアルはhere、以前のSO質問hereはカスタムアニメーションのトピックをカバーしていますが、一部のソースコードhereも役立ちます。 Phew。それはたくさんのリンクです。

+0

ありがとうございます。より多くのセットアップを必要とするとどういう意味ですか?また、このメソッドを使用して、デフォルトとは異なるアニメーションを選択するにはどうすればよいですか? – DGund

+1

もっとセットアップを必要とするのは、UINavigationControllerを作成してスタックからビューコントローラをプッシュ/ポップするために使用する必要があるということです。それは本当に難しいことではありません。私は今、私の答えを改訂しています。 –

0

モーダルビューコントローラは、プログラムフローで「追加情報」を取得する明確な目的を持っています。より多くの/少ないメモリを消費するようには設計されていません。実際、メモリ消費量を考慮して、特定のスタイルのビューコントローラは設計されていません。階層的な情報を集めている場合は、UINavigationControllerUITableViewControllerが結合した方がいいかもしれません。同様に、情報が必要な場合(そして、この情報を取得せずに進めることができない場合)、ユーザーに警告するモーダルビューコントローラ(並べ替え)を提示します。

関連する問題