2012-03-06 5 views
0

こんにちは、私はTabControllerのフローを変更しようとしているので、ユーザーがログインしていないときに、ログインビューに設定してください。私のコントローラはTabBarControllerを拡張し、私は TabBarControllerは、セグをするためにSelectViewControllerを上書きする

self.tabBarController.delegate=self; 

マイコードがある

としてデリゲートを設定します。私も試した

ion 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <UITabBarController: 0x6a72220>. 

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 

    if (login) { 

     LoginViewController *loginViewController = [[LoginViewController alloc] init]; 
     UINavigationController *navController = [[UINavigationController alloc] 
               initWithRootViewController:loginViewController]; 


     [tabBarController presentViewController:loginViewController animated:YES completion:nil]; 
       return NO; 
    } else { 
     return YES; 
    } 

私は、ナビゲーションを行うために管理することはありませんが、それはexcetionを与えますログインをモーダルとして表示しますが、黒い画面しか表示されません:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 

    if (YES) { 
     LoginViewController *loginViewController = [[LoginViewController alloc] init]; 
     UINavigationController *navController = [[UINavigationController alloc] 
               initWithRootViewController:loginViewController]; 


     [tabBarController presentModalViewController:navController animated:YES]; 
       return NO; 
    } else { 
     return YES; 
    } 
} 

誰かが私を助けることができる!!お願いします!!!!

答えて

2

私は黒いモーダル画面を修正することができます(まだモーダルではありません)。 問題は、私がストーリーボードを使用しているときに、ストーリーボードから以下のようにビューをロードする必要があるということでした。これは、iPhone上で私のために動作しませんでした:)

+0

トリックを作っ

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *navController = [storyboard instantiateViewControllerWithIdentifier:@"login"]; [navController setModalPresentationStyle:UIModalPresentationFullScreen]; [self presentModalViewController:navController animated:YES]; 

。私は次のことをしなければなりませんでした:modalPresentationStyleをUIModalPresentationFormSheetに設定し、modalTransitionStyleをUIModalTransitionStyleCrossDissolveに設定してください。 –

関連する問題