2011-08-13 13 views
1

ログインページを最初に起動したときにプルアップするアプリケーションがあります。このログインページはアプリケーションを経由し、ログインするまで誰も通過できません。また、メインアプリケーションにこのログイン画面に戻る必要のある設定タブがあります。今は、ログイン画面とその上にタブバーが表示されます。タブバー上にログインビューを表示する方法はありますか?iPhoneはタブバー上にビューを作成する方法はありますか?

答えて

0

は、ログイン画面のあなたのviewDidLoadで、以下の設定をお試しください:

self.tabBarController.hidesBottomBarWhenPushed = YES; 
+0

私のために何もしなかった –

2

私はタブバーの上での移行のビューを持つことにより、類似した何かをやりました。私はあなたのView.modalTransitionStyle = UIModalTransitionStyleFlipHorizo​​ntalを使用しました。ユーザーがタブバー画面に戻ることを可能にする「閉じる」ボタンがある。私はこれをしていないので、自動的にアプリの起動時に来る代わりに、タブバーのコントロールとは別に画面上のボタンからビューを呼び出す。しかし、私はあなたが何とかこれを利用して、あなたが望むことをすることができると確信しています。

実際、私は実際にこのアプリを全部呼び出すこの方法を使用しました。タブラをカバーするたびに、あなたが来たメインのタブ付きナビゲーションに戻るために「閉じる」必要があります。

+0

+1:これはまさにモーダルビューです。 – Mac

0

UITabBarControllerのサブクラスを使用すると、viewDidAppear:でさまざまなチェックを実行できます。 @Maxwellが提案するように、ログインビューはモーダルに表示されます。

// a subclass of UITabBarController 

- (void) viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    [self firstLoadChecks]; 
} 

- (void) firstLoadChecks 
{ 
    if (!self.hasLogin) { 
    id login = [[[LoginViewController alloc] initWithDelegate:self autorelease]; 
    id nav = [[[UINavigationController alloc] initWithRootViewController:login] autorelease]; 
    nav.modalPresentationStyle = UIModalPresentationStyleFormSheet; 
    nav.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

    [self presentModalViewController:nav animated:YES]; 
    } 
} 

// from LoginViewControllerDelegate 
- (void) didLogin 
{ 
    self.hasLogin = YES; 
    [self dismissModalViewControllerAnimated:YES]; 
} 

// my LoginViewController can be closed without a login 
- (void) dismissModalViewControllerAnimated:(BOOL) animated 
{ 
    [super dismissModalViewControllerAnimated:animated]; 

    [self firstLoadChecks]; 
} 
+0

私はこれを正しく動作させることができませんでしたが、よりよい解決策を考え出しました。誰かが設定情報を変更しようとしたときに他のタブを消して無効にする方法を理解しました。有効な情報が送信されるまでその方法をそのままにしています。 –

関連する問題