私は自分のUIを設計するためにさまざまなiOSアプリを読んでいますが、モーダルビューと非モーダルビューの使用の違いが完全に明確ではないように感じることがあります。アップ」と「サインイン」ビューでは、モーダルビューでサインインフォームを表示するアプリがいくつかあります。別のアプリは「右」のビューに移動します(「戻る」ボタンが表示されます)。ユーザーエクスペリエンスの観点から、最善の方法は何ですか? iPhoneのモーダルビューは画面全体を占めるので、モーダルビューと非モーダルビューの間には、ボタンから上にスライドするものと右から左にスライドするものを除いて、別の違いがありますか?
また、ナビゲーションバーに戻るボタンを表示しているモーダルビューから複数のビューをナビゲートすることは正しい(そして可能である)か、またはそのようにすべきではなく、モーダルビューは常にキャンセルボタンと完了ボタン(戻るボタンではない)を表示する必要があります)?
多分私はたくさんの質問をしました...前もって感謝します!
質問がApple iOSに固有のものである場合、ヒューマンインターフェイスガイドライン(HIG)を参照します):
アプリの主要機能に関連する自己完結型のタスクを実行する機能を提供する必要がある場合は、モーダルビューを使用します。モーダルビューは、メインアプリのユーザーインターフェースに常に属しているわけではないUI要素を必要とするマルチステップサブタスクに特に適しています。これは、マイケルの最初の段落と非常によく似ています。
さらに:
ナビゲーションバーを使用すると、情報階層内を移動でき、オプションで画面コンテンツを管理できます。
そのため、モーダルビューを表示するときにcanにナビゲーション階層があります。モーダルは、それを要約すると、ユーザーが途中で続行する前に何かを実行できるように、アプリの通常のフローから抜け出す方法です。ログイン画面の例では、(HIGに基づいて)よりモーダルに表示し、次にそれを閉じてユーザーを元のビューからユーザーに戻すほうが理にかなっています。
たとえば、設定アプリ->メール->新しいアカウントを追加(すべてナビゲーション階層を介して表示)に移動します-プロバイダーの1つを選択すると、「ログインページ」がモーダルに表示されます。それを記入し、すべてが確認されると、モーダルは消えて、アカウントリストに戻ります。もう1つの例はカレンダーアプリです。イベントを追加すると、イベントがviewingイベントのプロセスから除外され、ビューはモーダルに表示されます-カレンダーの割り当てに移動すると、ビュー階層的に表示されます。
「これをどうすればいいですか」についてアプリをレビューするとき-私は通常、作成されたアプリに注目しますby Apple最初に、not他の開発者、私たちの多く(王室の私たち)はHIGやAppleの推奨事項などを無視する傾向がありますが、Appleはかなり一貫している傾向があります。
allを簡潔に試してカプセル化する。 HIGを読みます。それを覚えてください。それを印刷し、数か月経っても摩耗が進んでいない場合は、何かがおかしい(これはAppleからの言い換えです)。特定のやり取りを処理する方法について「アドバイス」を求めて他のアプリを探すときは、Appleによって作成されたアプリを最初に見てください。それらはほとんどHIGに従っているため、さまざまな体験があります。標準のUI要素だけでなく、.
お役に立てば幸いです。
RE:コメントのフォローアップ質問
HIGには、モーダル内のモーダルに関する推奨事項はありません。ただし、連絡先アプリを見ると、次のように表示されます。
したがって、Appleが独自のUX哲学に準拠していると仮定すると、複数のモーダルを時間の経過とともに提示しても問題ないという答えが表示されます。それらすべてをキャンセルまたは保存すると、フローの最初に戻ります。
モーダルビューを使用する主な理由は、ユーザーが中断されるべきではない単一のタスクを完了するためです。つまり、モーダルウィンドウの動作は、モーダルウィンドウ内にいる間は画面の他の部分にアクセスできないように設計されているため、ユーザーがタスクを完了するために必要なすべての情報をモーダルウィンドウ内に含める必要があります。 (キャンセルまたは終了しない限り)。
ユーザーの観点から見ると、ユーザーの唯一の焦点を占める時間が長いほど、ユーザーが別のことをしたくなる可能性が高くなるため、モーダルウィンドウを長いタスクに使用しないでください。モーダルウィンドウで定義されたタスクを中断することなく正常に完了できるようにするには、これをできるだけ短くする必要があります。
アイデアを得るためにいくつかの参考文献と例をご覧になることをお勧めします。他に質問がある場合は、具体的な質問を投稿してください。