如何在UITabBarController之前启动视图控制器?

时间:2011-07-21 18:31:13

标签: uiviewcontroller uitabbarcontroller

我有一个应用程序/游戏,我希望在显示任何形式的UITabBarController之前显示一系列视图控制器(即:开始游戏,加载游戏等)。

过程将是:

  1. 启动app delegate
  2. 启动我的一系列视图控制器
  3. 只有在按下开始游戏时才启动/显示UITabBarController。
  4. 我的UITabBarController与app委托绑定,我当前的代码是这样的:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    
        SplashScreenVC *splashScreenVC = [[SplashScreenVC alloc] initWithNibName:@"SplashScreenVC" bundle:[NSBundle mainBundle]];
    
    
        UINavigationController *firstView = [[UINavigationController alloc] init];
        [firstView presentModalViewController:splashScreenVC animated:NO];
        [firstView release];
    
    
        [splashScreenVC release];
        [self.window addSubview:[tabController view]];
        return YES;
    }
    

    我尝试将启动画面作为模态视图控制器启动,但这似乎不起作用。

    我也尝试将其作为initWithRootViewController启动 - 但无论我做什么,UITabBar仍然会启动,我从未看到模态视图。

    那么,我如何在tabBarController视图之前启动东西,视图等?

    非常感谢

2 个答案:

答案 0 :(得分:1)

为什么不隐藏标签栏?

答案 1 :(得分:1)

你知道iOS响应链吗?如果要显示UI,则必须在窗口中添加UI。 所以应该在窗口上添加启动画面(顶部的第一个索引只是"隐藏了tabbar"),你会看到显示效果,然后在显示Splash后,你会看到正常的标签栏。

注意:

  1. [self.window bringSubviewToFront:self.splashView]; //位于顶部

  2. [self performSelector:@selector(removeSplashView) withObject:nil afterDelay:5]; // 5秒后,启动将自动消失