2

アプリがメモリから完全に読み込まれるたびに同じビューに読み込まれるようにしたいので、アプリを閉じてから再度開くと、同じビューが開きます(現在はUITabBarのタブの1つです)。私はiOS開発の経験があまりないので、これを行う方法の説明だけでなく、コードも見たいです。前もって感謝します!

4

1 に答える 1

3

たとえば、タブがメイン メニューで、アプリの実行時に常に読み込まれるようにする場合は、アプリのInfo.plistファイルに次のキーを追加して、マルチタスクを許可しないことを検討してください。

Application does not run in background - (tick the box)
or:
UIApplicationExitsOnSuspend - set to YES (BOOL)

UIApplicationDelegateこれにより、ホーム キーが押されてメソッドapplicationwillterminate:が呼び出されたときに、アプリが確実に終了します。

編集:

これが変更されるたびに、特定のタブおよび/またはユーザーがオンになっているタブを追跡する必要があると思います。この値を NSUserDefaults (plist) に保存し、アプリが起動またはアクティブになるたびに確認します。正しいタブにない場合は、そのタブに切り替えることができます。

これはあなたがやろうとしていることですか?

編集2:

最初のステップでは、タブ バーのボタンの押下をリッスンする場合は、ここで受け入れられた回答のように、新しく選択されたインデックスの整数値を取得する必要があります。

プログラムで TabBar タブ ビューに切り替えますか?

次に、この値を .plist ファイルに書き込む (保存/保存する) 必要があります。まず、新しいプロパティ リスト ファイルをプロジェクトに追加し、それを Xcode で開いて新しい行を追加し、SelectedTabNumber 型などの単純な名前を付けて、値を 1337 とします。

アプリ デリゲートでは、アプリに登録する必要がある新しい .plist があることをアプリに伝える必要があるためapplication:didFinishLaunchingWithOptions:、次の操作を行う必要があります。

NSUserDefaults* userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"myNewFile" ofType: @"plist"]]];

SelectedTabplist整数を読み書きする方法は次のとおりです。

保存された値を取得するには...

int test = [[NSUserDefaults standardUserDefaults] integerForKey: @"SelectedTab"];

キーに新しい値を書き込むには...

int newTab = 2;
[[NSUserDefaults standardUserDefaults] setInteger: newTab forKey: @"SelectedTab"];
[[NSUserDefaults standardUserDefaults] synchronize]; // absolutely critical!

アプリ デリゲートでこのチェックを実行する適切な場所を選択し、必要なタブを読み込むようにタブ バーに指示するだけです。

お役に立てれば!

于 2012-05-28T19:34:34.747 に答える