2012-11-23 319 views
0

我在iOS Storybords中有一個Tab-bar應用程序。 UITabbar控制器連接到 - > 4套(U導航控制器 - > UItableview控制器)。每個UITableviewcontroller單元連接到多個UIview控制器以進行推送。標籤欄顯示整個項目?

構建應用程序 - 導航選項卡出現在視圖控制器的頂部,沒有任何問題。但是底部有4個項目的Tabbar僅在第一個視圖中可見。 UIviewcontrollers不顯示4項Tabbar!??。我已將底部欄設置爲屬性檢查器中的選項卡欄。但它不起作用?

我相信一定還有比我理解的更多的東西。希望有人幫助。

如何在應用程序中顯示tabbar?

回答

1

我對你的設計並不完全確定,但是這裏有一些提示可能會有所幫助。

分鏡設計:

基本的TabBar應用佈局總體上應該是這樣的,從左至右爲上的小箭頭,表明它是啓動控制電路左側的第一個控制器。

  • 您的第一控制器應該是的TabBar控制器
  • 每個標籤應該被連接到導航控制器
  • 每個導航控制器應連接到一個或多個UIViewControllers或UITableViewControllers。

現在,請注意,雖然有高級配置,但這只是一般佈局,可以很好地設置應用程序併爲每個選項卡提供輕鬆的推送轉換。

如果您的應用程序啓動並顯示標籤欄,並且當您選擇標籤項時,它應該顯示該標籤的視圖控制器。如果tabbar仍然存在,那麼你的狀態很好。如果您在該視圖控制器上選擇了一些內容,並在屏幕上推動了一個新的視圖控制器,那麼在這種情況下,您會丟失標籤欄,那麼可能是這個問題: - 檢查視圖控制器並查看對象檢查器以查看標記爲「隱藏底部欄」 - 如果選中 - 則取消選中它。 如果你沒有找到它,然後檢查你的代碼爲你的視圖控制器,並尋找啓動方法,如視圖加載的聲明:self.hidesBottomBarWhenPushed = YES;如果您找到該命令,請將其註釋掉或刪除它。

如果這是您的設計並且在您的應用程序中有意義,那麼可以隱藏某些視圖控制器上的tabbar是完全可以的。一般來說,嘗試和避免它並將屏幕保留在屏幕上是一種很好的做法,以便用戶體驗,但有時像屏幕大小等問題可能會導致開發人員在某些工作流程中隱藏它。

我希望這會有所幫助,並與您的問題聯繫起來。如果沒有,對不起。

0

UINavigationController S中UITabbarController!而非周圍您可以添加標籤欄像這樣的其他方式

+0

您的建議似乎很有希望,但我無法顯示它。你能否解釋一點細節 - 可能是一步一步來的。我非常感謝。 – Sivon

+0

我在UITabbarcontroller中嵌入了四個UINavigationController,然後將一個UITableViewcontroller連接到每個導航控制器。但仍然沒有在UIviewcontroller中顯示標籤欄的運氣(在單擊表格視圖單元格時出現在視圖中) – Sivon

+0

我不太清楚您的意思,但我看到您接受了答案,所以我想您會找到解決方案。 –

1

內: -

Appdelegate.h

#import <UIKit/UIKit.h> 

@class StartingViewController; 

@interface Appdelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    StartingViewController *viewController; 

    UITabBarController *tabBarController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet StartingViewController *viewController; 

@property (nonatomic,retain) UITabBarController *tabBarController; 

-(void)addTabBarToView; 

@end 

應用delegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    // Override point for customization after application launch. 

    // Add the view controller's view to the window and display. 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 

    [self addTabBarToView]; 

    return YES; 
} 

-(void)addTabBarToView{ 

    FirstController *first = [[FirstController alloc] initWithNibName:@"FirstController" bundle:nil]; 
    first.title = @"First"; 

    SecondController *second = [[SecondController alloc] initWithNibName:@"SecondController" bundle:nil]; 
    second.title = @"Second"; 

    ThirdController *three = [[ThirdController alloc] initWithNibName:@"ThirdController" bundle:nil]; 
    first.title = @"Third"; 

    Forthcontrooler *Four4 = [[Forthcontrooler alloc] initWithNibName:@"Forthcontrooler" bundle:nil]; 
    second.title = @"Secfor"; 





    UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:first]; 

    UINavigationController *navigationController2 = [[UINavigationController alloc]initWithRootViewController:second]; 

    UINavigationController *navigationController3 = [[UINavigationController alloc] initWithRootViewController:three]; 

    UINavigationController *navigationController4 = [[UINavigationController alloc]initWithRootViewController:Four4]; 



    tabBarController = [[UITabBarController alloc] init];   

    tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController1,navigationController2,navigationController3,navigationController4,nil]; 

    [window addSubview:tabBarController.view]; 

}