您好我是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;
}
显示欢迎屏幕后,我将删除其视图,我希望显示由标签栏组成的主视图。可能是什么错误?
答案 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
分组,但我觉得更正确。