0

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

-(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中。任何帮助将不胜感激,我总是在回答时标记我的问题已回答。

4

1 回答 1

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帖子中修改: 如何隐藏标签栏控制器?

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];
于 2012-06-24T17:19:20.067 回答