ユーザーがホームボタンを押したときにアプリを閉じたくないのですが、その代わりに、アプリを再度開いた後に離れたのと同じページに戻る必要があります。
5 に答える
この機能を閉じる以外のビューコントローラを使用している場合は、ボタンを閉じてください。
古いバージョンの場合:
-(IBAction)Close:(id)sender{
[self dismissModalViewControllerAnimated:YES];
}
iOS6の場合:
-(IBAction)closebtn:(id)sender{
{
[self dismissViewControllerAnimated:YES completion:Nil];
}
ビューコントローラに自動的にリダイレクトされ、そこから現在のビューコントローラに移動します。
アプリがバックグラウンドになったときにアプリの状態を保存し、フォアグラウンドになったときに取得しようとしていると思います。について読んでみてくださいNSUserDefaults
。これがドキュメントのリンクです。
これらはあなたのオプションです
アプリデリゲート:
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
これらのメソッドは、ユーザーがホームボタンを押すと特定の順序で呼び出されます。アプリケーションは停止しません。バックグラウンドで実行されます。これらの関数でロジックを記述して、アプリケーションが停止したのと同じクラスで開くようにすることができます。
iPhone / iPadのホームボタンは常に現在のアプリケーションを閉じて、ホーム画面に戻ります。この動作は、アプリケーションによってオーバーライドできません。
私はあなたが物理的なホームボタンについて話していると思います。Appleは、独自のアプリケーションを除くすべてのアプリケーションをサンドボックス化するため、すべてのハードウェアボタンを含むiDeviceの特定の側面にアクセスすることはできません。アプリケーションがバックグラウンドに入った後にユーザーが中断したところに戻るようにしたい場合は、デリゲートファイルのメソッドを使用します。
- (void)applicationDidEnterBackground:(UIApplication *)application {// your code}
あなたの質問が、ユーザーが別の種類の意味で中断したところに戻ること(そして再び物理的なホームボタン)に関連している場合...
Zenが言ったように、たとえば、ユーザーが次に入力するときに特定のテキストフィールドに入力する場合は、ユーザーのデフォルトを使用できます。すなわち
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (!defaults) {
[self setDefaults]; // where setDefaults is just a method that set some random values
}
int apples = [[NSUserDefaults standardUserDefaults] integerForKey:@"apples"];
if (apples == 0) {
apples = 2;
}
// fill in the interface values for xibApples, a UITextField outlet
[xibApples setText:[NSString stringWithFormat:@"%d", apples]];