-1

我有一個TabBar與2 viewControllers設置它,和mainScreen視圖。我想要在應用程序啓動時顯示mainScreen視圖 w/TabBar在底部,並且只有在TabBar被觸摸時切換到TabBars viewControllers。UITabBar的幫助,請不要修復!

我的問題是TabBars viewController的視圖將只顯示,除非我設置TabBar的視圖清除顏色,只有然後顯示mainScreen視圖。

回答

0

那麼,你真的應該把你的applicationDidFinishLaunching代碼在這裏,以幫助我們瞭解你的目標。

所以,他們的想法是他們永遠無法回到「mainScreen視圖」?這有點奇怪,但我想你可以監視tabBar,當他們按下它時,你可以移除mainScreen。所以你的主應用程序代表看起來像這樣:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    NSLog(@"tab pressed"); 
    [self.mainScreen removeFromSuperview]; 
    self.mainScreen = nil; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    //Build your tab controller here (or load in mainwindow.xib) 
    self.window.rootViewController = self.tabBarController; 
    self.tabBarController.delegate = self; 

    //now build your mainScreen (or get from mainwindow); for example... 
    self.mainScreen = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-49)]; 
    self.mainScreen.backgroundColor = [UIColor blueColor]; 

    UIButton * temp = [[UIButton alloc] initWithFrame: CGRectMake(110, 60, 100, 20)]; 
    temp.backgroundColor = [UIColor redColor];  
    [mainScreen addSubview:temp]; 
    [temp release]; 

    //now put your mainscreen "over" your tabBar 
    [self.tabBarController.view addSubview:mainScreen]; 

    [self.window makeKeyAndVisible]; 

    return YES; 
} 
+0

是的,謝謝。這工作完美。這是我知道的一個奇怪的程序流程 – srome11 2011-02-16 09:53:22

0

我認爲這意味着您的mainScreen視圖低於層次結構中的TabBar視圖。您可以將您的「mainScreen」視圖添加爲初始tabBar視圖的子視圖。

一旦用戶與標籤欄交互,您可以簡單地刪除您的mainScreen視圖。在你的標籤欄代表:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if ([viewController.tabBarItem.title isEqualToString:@"TitleOfFirstViewInTabBar"]) { 
     [mainScreenView removeFromSuperview]; // Assuming mainScreenView is available 
    } 
}