2011-06-24 4 views
1

私はTabControllerを含むViewControllerを持っています。これがロードされる前に、ユーザーがログインしてアクセス権があるかどうかを確認する必要があります。私AppDelegateで、(タブ付き)rootViewControllerとLoginViewController BOT宣言されている、と彼らはまた、IBにアップ有線している:iPhoneのモーダルLoginView

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// [window addSubview:[rootController view]]; 
     [window addSubview:[loginViewController view]]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

私の計画はした:私はAppDelegateでこれを持って

を認証後にログインフォームを閉じてrootControllerを表示しますが、rootControllerはすぐに表示されます。私は何をするつもりだった。

-(IBAction)DidClickLoginButton:(id)sender { 
    NotesAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
    [delegate.window addSubview:[delegate.rootController view]]; 
    [self dismissModalViewControllerAnimated:YES]; 
} 

iNotesAppDelegate は、これを行うための簡単な方法はありますか? LoginViewControllerが表示されない理由はわかりません。

EDIT:は最終的に私はそれがプログラムではなく、Interface Builderを持つよりも、物事に100%を行うには、実際にはるかに簡単だと思う私のAppDelegateのdidFinishLaunchingWithOptionsメソッド

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// [window addSubview:[rootController view]]; 
    [self.window makeKeyAndVisible]; 
    LoginViewController *loginViewController =[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil]; 
    [self.rootController presentModalViewController:loginViewController animated:YES]; 
    return YES; 
} 

答えて

0

はい、それはです。ウィンドウにルートコントローラビューを追加すると、これは何よりも(ログインビューの上にあっても)表示され、その後は表示されないルートビューの後ろにログインビューが表示されなくなります。

EDIT: アプローチの1つは、最初にrootより上位のログインコントローラ(ログインビューを表示するルートビューコントローラ)を使用して、ログインビューをうっかり却下することです。

1

にrootControllerにそれを追加することで、この作業を得ました。いずれにせよ、application:didFinishLaunchingWithOptions:に、あなたはこのような何かをしたい:ユーザーがログインした後

[rootViewController presentModalViewController:loginViewController animated:NO]; 

その後、実行します。

[rootViewController dismissModalViewControllerAnimated:YES]; 
関連する問題