Iphone iOS-如何在新视图上显示选项卡控制器

Iphone iOS-如何在新视图上显示选项卡控制器,iphone,ios,objective-c,Iphone,Ios,Objective C,我想知道如何在新视图上显示选项卡控制器 我的选项卡控制器上有3项:主页、信息、帮助 在主页上,有一个按钮打开一个新视图,这个新视图称为“beta”,但不显示选项卡控制器,我不知道如何显示选项卡控制器,但我不希望“beta”作为选项卡项 任何帮助都将不胜感激 下面是我到目前为止使用过的一些代码 //this is in appdelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption

我想知道如何在新视图上显示选项卡控制器

我的选项卡控制器上有3项:主页、信息、帮助

在主页上,有一个按钮打开一个新视图,这个新视图称为“beta”,但不显示选项卡控制器,我不知道如何显示选项卡控制器,但我不希望“beta”作为选项卡项

任何帮助都将不胜感激

下面是我到目前为止使用过的一些代码

//this is in appdelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.
    UIViewController *viewController1 = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
    UIViewController *viewController2 = [[InformViewController alloc] initWithNibName:@"InformViewController" bundle:nil];
    UIViewController *viewController3 = [[HelpViewController alloc] initWithNibName:@"HelpViewController" bundle:nil];

    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3];
    self.window.rootViewController = self.tabBarController;


    [self.window makeKeyAndVisible];
    return YES;



//this opens the new view called beta

@implementation HomeViewController

-(IBAction)Showbeta
{
    betaViewController *betaViewController = [[betaViewController alloc] initWithNibName:nil bundle:nil];
    [self presentViewController:betaViewController animated:YES completion:NULL];    
}

//this is in betaviewcontroller
@interface betaViewController ()

@end

@implementation betaViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        // self.window.rootViewController = self.tabBarController; --> this did not work
    }
    return self;
}

如果我理解正确,您需要将该选项卡的视图控制器设置为根目录为home vc的导航控制器。然后,当你想显示测试版视图时,你只需像其他导航控制器一样按下它,它就会停留在选项卡栏中

因此,您应该使代码适应如下内容:

UIViewController *viewController1 = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
UIViewController *viewController2 = [[InformViewController alloc] initWithNibName:@"InformViewController" bundle:nil];
UIViewController *viewController3 = [[HelpViewController alloc] initWithNibName:@"HelpViewController" bundle:nil];

UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController:viewController1]

self.tabBarController = [[UITabBarController alloc] init];
//self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3];
self.tabBarController.viewControllers = @[navController, viewController2, viewController3];

您可以在appDelegate类中声明tabController实例。 现在,将主视图控制器指定为rootViewController。 单击主屏幕上的按钮,将显示一个新视图,该视图应具有tabViewController。因此,现在应将rootViewController设置为:
[[[UIApplication sharedApplication]委托]窗口].rootViewController=tabViewController

我检查了它是如何在AppDelegated中完成的,但在那里它使用self.window.rootviewcontroller=self.tabbarcontroller;我建议您使用试图实例化UITabBar控制器的代码编辑您的问题。另外,您是否使用故事板、XIB等?我使用的是XIB而不是故事板。我已经在上面的URL上粘贴了一些片段,我不确定您的建议是什么,您在使用故事板实现吗?