1

我的项目首先是使用 UITabBarController 作为第一个出现的视图创建的,然后我需要添加一个显示 3 秒的自定义启动画面,所以我使用了一个出现在 UITabBarController 之前的新 UIViewController 并将这个自定义启动画面设置为第一个视图出现。然而,在我做了那个改变之后。目前,我的初始屏幕转到 UITabBarController 我收到此错误。

警告:尝试在 SplashViewController:0x1cdc55e0 上呈现 UITabBarController:0x1cdcfe30,其视图不在窗口层次结构中!

我以这种方式在我的 SplashViewController 中执行视图更改:

#import "SplashViewController.h"

@interface SplashViewController ()

@end

@implementation SplashViewController



- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(changeView) userInfo:nil repeats:YES];

}

-(void)changeView{

    [self performSegueWithIdentifier:@"splash" sender:self];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

顺便说一句,我正在使用情节提要,这是一个奇怪的错误,在我添加了启动画面之后一直出现在控制台中,我不知道如何摆脱它。

4

2 回答 2

1

在身份检查器(故事板)中为 TabBarController 提供故事板 ID“TabBarViewController”

并将 changeView 实现为-

-(void)changeView
{
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    TabBarViewController *tabBarViewController = [storyBoard instantiateViewControllerWithIdentifier:@"TabBarViewController"];
    [[[[UIApplication sharedApplication] delegate] window] setRootViewController:tabBarViewController];
}
于 2013-01-17T14:19:23.853 回答
0

无需为启动画面添加另一个控制器。只需在第一个选项卡中的控制器视图顶部添加一个视图(您的初始屏幕视图)。该视图将在应用程序启动时出现,然后在您想要的任何延迟之后,淡出该视图并将其从其超级视图中删除。

于 2013-01-17T17:16:40.910 回答