상태 저장을 위해 iOS 6 API를 구현했습니다. 작동합니다. 앱을 종료하고 몇 밀리 초 동안 다시 시작한 후 복원 된보기 컨트롤러가 작동하지만 메인보기로 바뀝니다. 컨트롤러를 시작할 때 표시합니다.ios 6 - 상태 보존 및 복원
앱이 주 창의 루트보기를 시작할 때마다 설정하므로 문제가되어야합니다. 내 윈도우의 루트보기를 설정하고있어 (있는 NSDictionary *) launchOptions : - (무효) commonInitializationLaunching
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self commonInitializationLaunching:launchOptions];
return YES;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self commonInitializationLaunching:launchOptions];
return YES;
}
- (void)commonInitializationLaunching:(NSDictionary *)launchOptions
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
static NSString *const kKeychainItemName = @"OAuthGoogleReader";
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
GTMOAuth2Authentication *auth;
auth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName
clientID:kClientID
clientSecret:kClientSecret];
self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];
BOOL isSignedIn = [auth canAuthorize];
if (isSignedIn) {
NSLog(@"Signed");
}else{
NSString *scope = @"https://www.google.com/reader/api/";
GTMOAuth2ViewControllerTouch *viewController;
viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
clientID:kClientID
clientSecret:kClientSecret
keychainItemName:kKeychainItemName
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
[self.navController pushViewController:viewController animated:YES];
// self.window.rootViewController = viewController;
}
});
}
당신은 그의를 볼 수 있습니다
여기 내 코드입니다. 나는 거기에 무엇을 넣을 지 모른다. 아마도 저장된 상태가 있는지 확인한 다음이 방법을로드 할 것입니까? 그러나 어떻게?
감사합니다. 여기
내가 롭의 조언 다음 시도했습니다 것입니다 : willFinishLaunching
에 아무것도
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (!self.isRestored) {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
}
[self commonInitializationLaunching:launchOptions];
[self.window makeKeyAndVisible];
return YES;
}
... 나는 또한 내 commonInitializationLaunching
방법에서 윈도우 코드에 의해 제거.
내 대답이 도움이 되었습니까? 일부 의견은 훌륭합니다. – rbrown