2012-05-29 11 views
0

저는이 문제에 정말로 걸리고 누군가 올바른 방향으로 나를 가리킬 수 있다면 고맙겠습니다 ...App Delegate의 메인 TabBar 컨트롤러를 어떻게 표시 할 수 있습니까?

메인 탐색을위한 탭 표시 줄과 함께 iOS 응용 프로그램을 구축하고 있습니다.

사용자는 기본 화면과 탭 표시 줄을보기 전에 가입/로그인해야합니다.

사용자는 Facebook 연결을 사용하여 로그인하고 가입 할 수 있습니다.

앱이 Google의 자체 API와 통신합니다.

현재 ... UITabBarController의 초기보기가로드 될 때 현재 사용자가 있는지 확인하고 그렇지 않은 경우 로그인 화면을 표시합니다. 로그인 화면에서

if (sessionID == (id)[NSNull null] || sessionID.length == 0){ 
    NSLog(@"session ID was null"); 
    SHOW_SIGN_IN_SCREEN; 
} 

#define SHOW_SIGN_IN_SCREEN SignInController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SignInScreen"];\ 
[self presentViewController:controller animated:NO completion:nil]; 

... 사용자가 "페이스 북으로 로그인"버튼을 터치하거나 화면까지 로그인 에 segues 새 계정을 만들 수 있습니다. 가입 화면은 사용자가 작성하는 양식을 가지고 있거나 Facebook의 "Facebook 가입"버튼을 탭하여 Facebook 그래프에서 제공하는 Facebook 세부 정보를 사용하여 계정을 만들 수 있습니다.

페이스 북의 콜백은 모두 내가 갇혀있는 앱 대리인에 의해 처리됩니다.

API는 새로운 사용자 또는 기존 사용자를위한 사용자 자격 증명인지 여부에 상관하지 않습니다. 두 경우 모두 API는 앱이 진행될 수있는 유효한 세션 ID를 반환합니다.

API가 응답하면 앱 위임자는 사용자를 내가 붙어있는 기본 탭 표시 줄 컨트롤러로 다시 이동해야합니다. 순간

, 나는

이 이 이

이 사람이 왜 SEGUE이 수행되지 않는 조언 해 줄 수 있습니다 호출되는하지만 SEGUE을 수행하지 않는

// app delegate 
-(void)segueToMainTabController 
{ 
    NSLog(@"segueToMainTabController"); 
    SignInController *controller = (SignInController *)[self.window.rootViewController presentedViewController]; 
    [controller segueToWelcomeScreen]; 
} 

// sign in controller 
-(void)segueToWelcomeScreen 
{ 
    NSLog(@"segueToWelcomeScreen"); 
    [self performSegueWithIdentifier:@"SignInToMainTabBar" sender:self]; 
} 

... AppDelegate에이이 ?

감사

답변

0

내가 내 AppDelegate에의 초기보기를 납치해야하는 응용 프로그램을 가지고, 그래서 어쩌면 당신은 유사한 무언가를 할 수 있습니다. 당신의 상태를 사용하여, 어쩌면 도움이 당신의 application:didFinishLaunchingWithOptions:

if (sessionID == (id)[NSNull null] || sessionID.length == 0){ 
    // whatever you need to do to initialize for the login screen 
    // you should make the login view the initial view in your storyboard 
} 
else { // hijack the initial view to show the tab bar 
    UIStoryboard *storyboard = self.window.rootViewController.storyboard; 
    MyTabViewController *tabViewController = [storyboard instantiateViewControllerWithIdentifier:@"MyTabViewController"]; 

    self.window.rootViewController = tabViewController; 
    [self.window makeKeyAndVisible]; 
} 

희망이 뭔가를 넣어보십시오.

관련 문제