1
我一直在嘗試沒有任何運氣來實現狀態恢復和保存。iOS 6保存和恢復沒有故事板
我不使用故事板。我必須做錯什麼。
我爲每個Nib文件設置了恢復標識符。
我知道狀態正在存儲,但從來沒有正確恢復。最後一個狀態顯示半秒鐘,然後返回到主視圖。我嘗試了許多事情,但沒有運氣。請幫忙!
-(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;
}
我還沒有理由去整合狀態保存/恢復,但是我發現你很可能在你的應用程序中重新開始恢復狀態:didFinishLaunchingWithOptions:方法。您的NSLog()在控制檯中顯示的順序是什麼? –
基督徒,謝謝你的回答。該NSLogs順序顯示: 「將完成」 「恢復」 「恢復」 「沒有完成」 我敢肯定,你指出的是真實的。事情是我不知道如何解決它。我嘗試了很多東西。我在iOS中的經驗有限。 – Paradox
我試圖讓它沒有Storyboard而沒有成功。 它看起來像故事板正在照顧很多工作,並且在代碼中進行操作需要您編寫實際的保存代碼。 雖然我可能是錯的。 http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/StatePreservation/StatePreservation.html – sachadso