需要从appdelegate加载UIViewController并在Storyboard App中加载时隐藏UITabBarController

时间:2012-06-24 15:58:18

标签: uiviewcontroller uitabbarcontroller uistoryboard uiapplicationdelegate

我有一个应用程序,在该应用程序中,如果用户第一次运行应用程序,我需要显示欢迎屏幕,然后仅显示应用程序的第一次设置信息。我认为把它放在appdelegate(didFinishLaunchingWithOptions)中的最佳位置,如果错误可能需要更正。在app委托中,我称之为:

-(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 个答案:

答案 0 :(得分: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];

这对我来说似乎有用,如果有更好的方法,请告诉我。只想发布答案,其他任何人都可以从中得到帮助。

编辑:栏仍然可见:(,但没有按钮可以推,只是一个黑条。任何帮助将不胜感激。至少用户无法访问栏,但我最终需要隐藏它

编辑:好的,真的!很高兴我解决了这个问题,并希望这可以帮助别人!

在这里,在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];