1

最近、すべてのiPhoneアプリの50%がFacebookのようなスライドメニューを使用しているようです。また、ViewDeckライブラリ(https://github.com/Inferis/ViewDeck)を使用して、このUIでいくつかのアプリを作成しました。左側のビューはUITableViewで、アイテムをクリックすると中央のビューが変更されます。

しかし、私は優れた「メニュー管理」に苦労してきました。すべてのViewControllerでNSArrayを作成しますか?一度に1つずつ遅延ロードする方がよいですか?記憶をどのように扱いますか?メモリ使用量を可能な限り低く抑えながら、最善の方法が何であるかはよくわかりません。

これらのスライディングメニューライブラリを見ると、動作するメニューと複数のコントローラーを備えた本格的なサンプルアプリはありません。私が言ったように、私はViewDeckを使用していくつかのアプリを作成しましたが、View Controllerの実際の変更は常に不格好で、まったく最適ではないと感じます(すべてのインスタンス化されたView Controllerを備えた配列)。

4

3 に答える 3

3

ビューではなくビューコントローラーに配列を使用します。ユーザーがそのView Controllerを指すセルを選択すると、ビューがロードされます。したがって、遅延読み込みです。メモリに注意する必要があると思われる場合は、メモリの警告で、今は必要のないビュー コントローラーを解放できます。

もちろん、そのコントローラーに何があるかによって異なりますが、一般的に (標準 UI) それらを解放する必要はありません。私は決して必要としませんでした。

于 2013-01-08T14:26:14.550 に答える
1

まず第一に、Facebook アプリや ViewDeck を使用したことがないことに注意してください。デモ ビデオに基づいて、ライブラリの使用目的は明らかです。

さまざまなパターンを探すことをお勧めします。たとえば、本がありPro Objective-C Design Patterns for iOS、基本的にコントローラーのコントローラーである非常に単純なメディエーターパターンについて説明しています。

メモリ管理は完全にタスクに依存します。表示されていないときにビューが読み込まれる可能性があるため、すべてのビュー コントローラーを一度に初期化する理由はありません。また、ビューは常にコントローラの最もリソースを消費する部分ではありません。このようなアプローチでは、非常に厳密で慎重なコントローラーの開発が必要になります。また、コントローラーを再利用可能にする必要がありますが、これはそれほど簡単ではありません。

代わりに、可能な限り柔軟でシンプルにするようにします。使用済みのビュー コントローラーの配列で、次のものが読み込まれ、必要に応じて追加されます。UINavigationControllerこれは、コントローラー スタックと非常によく似たものである必要があります。UINavigationControllerソースコードはありませんが、すべてのヘッダーがあり、内部ロジックはそれほど難しくありません。

于 2013-01-08T14:54:27.800 に答える