2011-08-13 81 views
1

我有一個應用程序在第一次啓動時拉起登錄頁面。此登錄頁面覆蓋應用程序,不會讓任何人通過,直到他們已經登錄。我的主應用程序還有一個設置選項卡,需要返回到此登錄屏幕。現在它顯示帶有標籤欄的登錄屏幕。有沒有辦法通過標籤欄獲取登錄視圖?iphone有沒有辦法在tabbar上創建視圖?

回答

0

嘗試在登錄屏幕的下方viewDidLoad中設置:

self.tabBarController.hidesBottomBarWhenPushed = YES; 
+0

沒有爲我做任何事情 –

2

我已經做了具有欣賞我的標籤欄的頂部過渡中類似的東西。我用yourView.modalTransitionStyle = UIModalTransitionStyleFlipHorizo​​ntal;用'關閉'按鈕讓用戶返回標籤欄屏幕。我沒有這樣做,所以它會在應用程序啓動時自動啓動,而是從屏幕上的按鈕單獨調用標籤欄控件。不過,我相信你可以用這個方法來做你想做的事情。

事實上,我實際上已經使用這種方式調用了遍及我的應用程序的視圖,每次它覆蓋tababr,並且必須「關閉」它才能返回主要的選項卡式導航。

+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

我無法正確地與我的工作,但我想出了什麼可能是一個更好的解決方案。當有人試圖更改設置信息時,我想出如何調暗和禁用其他選項卡,並且在提交有效信息之前保持這種狀態。 –

相關問題