我有一個TabBar與2 viewControllers設置它,和mainScreen視圖。我想要在應用程序啓動時顯示mainScreen視圖 w/TabBar在底部,並且只有在TabBar被觸摸時切換到TabBars viewControllers。UITabBar的幫助,請不要修復!
我的問題是TabBars viewController的視圖將只顯示,除非我設置TabBar的視圖清除顏色,只有然後顯示mainScreen視圖。
我有一個TabBar與2 viewControllers設置它,和mainScreen視圖。我想要在應用程序啓動時顯示mainScreen視圖 w/TabBar在底部,並且只有在TabBar被觸摸時切換到TabBars viewControllers。UITabBar的幫助,請不要修復!
我的問題是TabBars viewController的視圖將只顯示,除非我設置TabBar的視圖清除顏色,只有然後顯示mainScreen視圖。
那麼,你真的應該把你的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;
}
我認爲這意味着您的mainScreen視圖低於層次結構中的TabBar視圖。您可以將您的「mainScreen」視圖添加爲初始tabBar視圖的子視圖。
一旦用戶與標籤欄交互,您可以簡單地刪除您的mainScreen視圖。在你的標籤欄代表:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if ([viewController.tabBarItem.title isEqualToString:@"TitleOfFirstViewInTabBar"]) {
[mainScreenView removeFromSuperview]; // Assuming mainScreenView is available
}
}
是的,謝謝。這工作完美。這是我知道的一個奇怪的程序流程 – srome11 2011-02-16 09:53:22