Ios 如何正确地从启动屏幕重定向到tabBarController?

Ios 如何正确地从启动屏幕重定向到tabBarController?,ios,Ios,在基于tabbar的应用程序中,我创建了一个启动屏幕,并将其设置为根视图控制器。在splashViewController中,我想将tabbar控制器设置为windows rootViewControoler SplashViewController *splashViewController = [[SplashViewController alloc]initWithNibName:nil bundle:nil]; splashViewController.loginview = logi

在基于tabbar的应用程序中,我创建了一个启动屏幕,并将其设置为根视图控制器。在splashViewController中,我想将tabbar控制器设置为windows rootViewControoler

 SplashViewController *splashViewController = [[SplashViewController alloc]initWithNibName:nil bundle:nil];
splashViewController.loginview = loginview;

self.window.rootViewController = splashViewController;
//SplashViewController

[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(animationFinished) userInfo:nil repeats:nil];

-(void)animationFinished
{
    Appdelegate *delegate = (AppDelegate*)([UIApplication sharedApplication].delegate);
    delegate.window.rootViewController = delegate.tabBarController;
}

所有代码运行时没有任何错误,动画完成方法也被调用。但是,即使我将windows rootViewController设置为tabbar控制器,启动屏幕始终保持不变,用户也不会重定向到tabbar控制器。我做错了什么?

从选项卡栏控制器作为应用程序的根开始,如果您确实必须有一个启动屏幕,那么将其作为一个模式显示,会更简单。这样,当您关闭模态控制器时,您只需继续实际应用程序。

您初始化了tabBarController吗?检查delegate.tabBarController是否不是nil。如果它只是一个启动屏幕,为什么不使用应用程序附带的静态图像?@Nick-可能是因为界面指南明确规定要避免的事情之一:同意,我不会这样做,但如果你有一个控制器作为启动屏幕,您必须提交启动屏幕的启动屏幕;)如果我在viewDidLoad中将splash显示为模型显示,那么问题是加载视图需要很长时间,手机屏幕会出现几秒钟的空白。您需要将default.png@2x.png从黑色图像更改为splash screen/界面的图像。