0

ユーザーが任意のユーザーの名前を入力して [Go] をクリックすると、サーバー上のそのユーザーの公開情報が表示される単純なアプリの場合、そのユーザーの公開情報を交換するのがベスト プラクティスなのか、UIViewそれとも全体を交換するのがベスト プラクティスなのか疑問に思いUIViewControllerます。交換した?

これは、画面の上部にあるアプリのラベルまたはバナーであり、ユーザーの ID を入力するテキスト ボックスと [Go] ボタンがあります。ユーザーが任意のユーザー名を入力して [Go] をタップすると、アクティビティ インジケーター (糸車) が表示され、非同期スレッドがデータを取得し、完了すると、ユーザー名のテキスト ボックスと [Go] ボタンが表示されます。ボタンは、ユーザーの公開情報によって交換されます。アプリのラベルまたはバナーは、実際には常に画面の上部にとどまります。(画面の 25%)

サブビューを交換するだけでベスト プラクティスになるのでしょうか、それとも ViewController 全体を交換するのがベスト プラクティスでしょうか? (いずれにしても、トランジションのアニメーションが最適です)。アプリが後で他の機能や画面によって拡張される場合はどうなりますか? (ちなみに、by UIViewならthen[UIView transitionWithView: ...]が使えるようですが、byUIViewControllerではthenpresentViewController:animatedが扱いやすいのでしょうか?)

4

1 に答える 1

0

この場合の明確な「ベストプラクティス」は本当にないと思います。それよりも、アプリのナビゲーションと一般的なユーザー エクスペリエンスをどのように構築するかが重要です。新しい ViewController をプッシュすることが理にかなっている場合もあれば、View を切り替えることが理にかなっている場合もあります。

私の経験から言えば、同じ ViewController からいくつかの完全に異なるビューを管理するのは非常に面倒です。(コンテンツでいっぱいの画面のように「ビュー」を意味します。ビューには、「移動」ボタンのあるテキストフィールドや情報セクションなどのように、まったく異なる目的があります)

そのために新しいViewControllerをプッシュすることをお勧めします。特に、後でユーザー情報を表示する新しい機能や新しい方法がある場合はなおさらです。また、「移動」ボタンを使用してページにアクティビティ インジケーターを表示し、表示する実際の情報がない限り、ユーザーが前後に移動しないようにすることをお勧めします。

別の解決策として、ViewController のビューの上部にそのバナー (画面の高さの 25% でかなり大きく聞こえる) を表示し、その下に Paged Scrollview を配置します。ユーザーがクリックすると、テキストフィールドと移動ボタンがページ 1 に表示されます。 2 ページにスクロールして、そこに情報を表示します。したがって、スクロールビューの各ページに 1 つずつ、合計 2 つの UIView があります。

しかし、ユーザーに関する情報がどれだけあるかを知らなければ、完璧な答えを出すことは事実上不可能です:)

それが私の2cです。

于 2012-09-22T19:48:07.077 に答える