1

状態の復元と保存を実装するために運が悪いことに取り組んできました。

ストーリーボードは使用していません。私は何か間違ったことをしなければなりません。

すべての Nib ファイルに復元識別子を設定しました。

状態が保存されていることは知っていますが、適切に復元されることはありません。最後の状態が 0.5 秒間表示された後、メイン ビューに戻ります。私は運が悪いと多くのことを試しました。助けてください!

-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"will finish");
    return YES;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

    navigator = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = navigator;

    [self.window makeKeyAndVisible];
    [navigator release];

    NSLog(@"did finish");
    return YES;
}
// As you can see, I started the process of saving and restoring application state.
// Also, I added the restoration identifier for every class that should be restored.

-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder
{
    NSLog(@"restoring");
    return YES;
}
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder
{
    return YES;
}
-(void)application:(UIApplication *)application didDecodeRestorableStateWithCoder:(NSCoder *)coder
{
    NSLog(@"restored");
    //navigator = [[UINavigationController alloc] initWithRootViewController:];

    isRestored = YES;
}
4

1 に答える 1

0

が呼び出されるapplication:willFinishLaunchingWithOptions:前に復元が行われるため、コントローラーの初期化を行う必要があります。application:didFinishLaunchingWithOptions:

この回答を確認してください。

また、restoreIdentifier をすべてのコントローラーにプログラムで割り当てる必要があります。

于 2013-11-18T10:11:54.193 に答える