0

我有一个应用程序,如果它的第一次用户运行应用程序,我需要显示一个欢迎屏幕,然后仅显示一些第一次设置应用程序的信息。我认为最好的地方是放在appdelegate(didFinishLaunchingWithOptions)中,如果错误的话可能需要更正。在应用程序委托我把这个方法:需要从appdelegate加载UIViewController并隐藏在Storyboard App中加载时的UITabBarController

-(void) checkSetupOccured 
{ 

    NSString *filePath = [self dataFilePath]; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
    { 
     //File doesn't exist, first time ran or installed 
     UITabBarController *MyTabViewController = (UITabBarController *)self.window.rootViewController; 
     [MyTabViewController setSelectedIndex:3]; 
     WelcomeHomeViewController *welcomeHomeViewController = [[MyTabViewController viewControllers] objectAtIndex:3]; 
     [welcomeHomeViewController viewDidLoad]; 
     //Need help here I think - Anyway to hide MyTabViewController when its presented? 
    } 

} 

我已经经历了很多的线程和不断弹出的事情是:

//[MyTabViewController presentModalViewController:WelcomeHomeViewController animated:YES]; 
//self.navigationController.navigationBarHidden = YES; 
//[self setHidesBottomBarWhenPushed:YES]; 

我曾尝试与这些和可能很多不同的地方只需要退后一步,但我现在找不到解决方案。还要注意这不是在UITableView。任何帮助将不胜感激,我总是回答时回答我的问题。

回答

1

好吧,这里是我把if语句:

UITabBarController *MyTabViewController = (UITabBarController *)self.window.rootViewController; 

    [MyTabViewController setSelectedIndex:3]; 
    UINavigationController *welcomeHomeViewController = [[MyTabViewController viewControllers] objectAtIndex:3]; 
      UITabBar *tabBar = MyTabViewController.tabBar; 
    tabBar.hidden = YES; 
    [welcomeHomeViewController viewDidLoad]; 

这似乎离我,请让我知道是否有更好的方法。只是想发布答案,任何人都可以从中得到帮助。

编辑:酒吧仍然可见:(但没有按钮推,只是一个黑色的地带。任何帮助将不胜感激。至少用户不能访问酒吧,但我需要隐藏它。最终

编辑:OK FINALLY !!很高兴我有这样的解决,真的希望这可以帮助别人

这是在appsdevs修改张贴在这里: How to Hide Tab Bar Controller?

UITabBarController *MyTabViewController = (UITabBarController *)self.window.rootViewController; 

    for(UIView *view in MyTabViewController.view.subviews) 
    { 
     if([view isKindOfClass:[UITabBar class]]) 
     { 
      [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)]; 
     } else 
     { 
      [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
     } 
    } 

    [MyTabViewController setSelectedIndex:3]; 
    UINavigationController *welcomeHomeViewController = [[MyTabViewController viewControllers] objectAtIndex:3]; 

    [welcomeHomeViewController viewDidLoad];