【问题标题】:How to launch view controllers before UITabBarController?如何在 UITabBarController 之前启动视图控制器?
【发布时间】:2011-07-21 18:31:12
【问题描述】:

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

流程如下:

  1. 启动应用委托
  2. 启动我的视图控制器系列
  3. 仅当按下开始游戏时启动/显示 UITabBarController。

我的 UITabBarController 绑定到应用程序委托,我当前的代码是这样的:

- (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 视图之前启动东西、视图等?

非常感谢

【问题讨论】:

    标签: uiviewcontroller uitabbarcontroller


    【解决方案1】:

    为什么不把标签栏隐藏起来?

    【讨论】:

    • 我会研究一下,看看是否可行。理想情况下,虽然我会告诉应用程序委托在选项卡视图控制器之前启动某些视图;但如果这不起作用,我会尝试你隐藏标签栏的想法,看看是否能解决问题。
    • 您实际上可以做另一件事...只需在添加标签栏后将您的 ViewController 的视图添加到窗口中。当您不再需要它们时,只需: [self.view removeFromSuperview]; ViewController 的视图会在 tabbar 的前面,所以你不必担心将其设置为不可见。
    【解决方案2】:

    你知道 iOS 响应者链吗?如果要显示 UI,则必须在窗口上添加 UI。 所以应该在窗口上添加splash(顶部的第一个索引只是“tabbar hidden”),你会看到显示效果,然后显示Splash后,你会看到正常的tabbar。

    注意:

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

    2. [self performSelector:@selector(removeSplashView) withObject:nil afterDelay:5]; // 5s后水花会自动消失

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多