关于UITabBar控制器的问题

时间:2011-02-14 15:48:40

标签: iphone cocoa-touch uitabbarcontroller

您好我是iPhone sdk的新手。 我试图构建一个显示欢迎屏幕3秒的应用程序,然后切换到主应用程序屏幕,其中有一个标签栏视图。 我的欢迎屏幕在隔离测试时工作正常。但是在main.xib中配置UITabBarController之后,不会显示欢迎屏幕。虽然Tab Bar工作正常。

欢迎屏幕的控制器我已命名为rootController。 在AppDeligate中我有以下代码 -

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

    //  Override point for customization after application launch.    

    RootController* rootController = [[RootController alloc] init];
    //  [self.window insertSubview:rootController.view atIndex:4];
    [self.window addSubview:rootController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

显示欢迎屏幕后,我将删除其视图,我希望显示由标签栏组成的主视图。可能是什么错误?

3 个答案:

答案 0 :(得分:0)

我想在applicationDidFinishLaunching ...方法返回后加载了标签栏控制器的视图,因此在你添加了RootController的视图后,它将被添加到你的应用程序窗口,该视图现在位于标签栏视图下面。

可能有多种方法可以实现您想要的效果,但我会在标签栏控制器的viewDidLoad方法中以模态方式呈现欢迎视图。虽然您需要为此选择子选项卡栏视图控制器类,但代码将是最容易理解的。

子类UITabBarController,在nib文件中使用它,并覆盖viewDidLoad并执行类似

的操作

[super viewDidLoad]; //创建一个RootController对象 [self presentModalViewController:welcomeViewController animated:NO];

您可以在需要时关闭模态视图。

答案 1 :(得分:0)

最简单的方法:将欢迎视图控制器和标签栏控制器添加到mainwindow.xib,为它们创建出口并将它们链接起来。

然后向他们展示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [window addSubview:tabBarController.view];
    [window addSubview:welcomeViewController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

在welcomeViewController中,您可以在3秒后将其视图设置为隐藏,从窗口中删除等等。

答案 2 :(得分:0)

我非常整洁地解决了这个问题。我使用presentModalViewController:animated:并在timerDidRan:方法中解雇。虽然我将UIViewController而不是UITabBarcontroller分组,但我觉得更正确。