2011-03-12 10 views
1

私は最初の起動時に表示されるログインページを持っています。ユーザーが資格情報を入力すると、アプリケーションのメインページに移動します。この時点で、ユーザーが戻るキーを押すと、ログインページをスキップして終了します。私はここで提案されたものを試しました:Remove a page from Navigation Stack(OnNavigatedToではNavigationService.GoBack()を使用します)、バックスタックには何もないので例外がスローされます。私は例外を処理しないいくつかの他の場所は、基本的にアプリケーションを閉じるための唯一の方法です...アプリケーションの最初のページからプログラムで戻ってきます

このアプリケーションを閉じる方法の問題は、よくハックされている以外、Application_Closing )私の状態は保存されません。

バックキーを押したり、状態を保存したり、アプリケーションを終了したりするときに、ログインページをどのようにスキップできますか?

ありがとうございます!

答えて

4

ええ、これはWP7のナビゲーションで大きな問題になっています。多くの人々がこの同じ種類の問題について不平を言っています。覚えておくべき重要な点は、ナビゲーションがウェブサイトのナビゲーションを模倣していることです。ユーザーフォームやウェブページやその静的履歴によく似ています。

これを回避する最も簡単な方法は、ユーザーにとって透過的で簡単なものです。これは、実際のメインページの上にあるユーザーコントロールとして参照する最初のログインページを作成することです(phone:PhoneApplicationPageログインページ用 - メインページの一部であるコントロールのみphone:PhoneApplicationPage)。メインページのOnNavigatedToに「ユーザーがログインしていない場合はログインコントロールを表示し、そうでない場合はメインページを表示する」というブール値を使用します。

状態を保存している(tombstoning)場合は、もう1つ質問してください。

+0

これは最高のオプションのようです。 – hajpoj

1

一般的なベストプラクティスは、ナビゲーションスタックで必要としないものについてはページを使用しないことです。

私の場合、私はログインコントロールをホストするためにポップアップを使用することにしました。彼らがログインしていないと私はメインページからポップします。もし私がそれを表示していなければ。こうすることで、ログインしてヒットしなかった場合、アプリを終了します。しかし、ログインしている場合はメインページにもデータが表示され、ヒットした場合はアプリを終了します(ログインページは表示されません)。

0

ログイン/ホームページのシナリオでは、「GoBack」と呼ばれるホームページに移動するのではなくログインに成功することができます。これはホームページに戻ってログインページをポップしますナビゲーションスタックを開き、次のバックボタンを押してユーザーがアプリを終了できるようにします。

関連する問題