Ios 如何在UITabBarController中插入UINavigationController

Ios 如何在UITabBarController中插入UINavigationController,ios,layout,uinavigationcontroller,uitabbarcontroller,Ios,Layout,Uinavigationcontroller,Uitabbarcontroller,如何将UINavigationController插入uitabarcontroller内部 目前,我有mainUITabBarController,在应用程序委托中有declatarion,如下所示(所以tab是main) 在其中一个选项卡中,我想插入UINavigationController,但无法获取它 代码的结构如下所示: main window.xib带有UITabBarController对象,选项卡类型为UINavigationController(指向NavigationHis

如何将
UINavigationController
插入
uitabarcontroller
内部

目前,我有main
UITabBarController
,在应用程序委托中有declatarion,如下所示(所以tab是main)

在其中一个选项卡中,我想插入
UINavigationController
,但无法获取它

代码的结构如下所示:

  • main window.xib
    带有
    UITabBarController
    对象,选项卡类型为
    UINavigationController
    (指向
    NavigationHistory.xib
    )-屏幕截图:无效链接
  • NavigationHistory.xib
    仅包含视图指向History.xib的
    UINavigationController
  • History.xib
    只有
    UITableView
    元素-屏幕截图:无效链接

  • 现在,
    UIViewController
    不显示我的View1视图,我也不知道为什么会这样。也许你有什么线索?或者给我指出进行这种配置的地方。

    我自己回答。这是很好的解释
    在appdelegate.m文件中编写代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
        NSMutableArray *Mutablearray = [[NSMutableArray alloc] init];
    
            UIViewController *1st_View = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
    
            UINavigationController *Navigation = [[UINavigationController alloc] initWithRootViewController:1st_View];
    
            [Mutablarray addObject:Navigation];
    
            UIViewController *2nd_View = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
    
            UINavigationController *Navigation  = [[UINavigationController alloc] initWithRootViewController:2nd_View];
            [Mutablearray addObject:Navigation];
    
        self.tabBarController = [[UITabBarController alloc] init];
        self.tabBarController.viewControllers = Mutablearray;
        self.window.rootViewController = self.tabBarController;
        [self.window makeKeyAndVisible];
        return YES;
    }
    

    将控制器对象添加到UINavigationController,并将导航控制器对象添加到UINavigationController

    UINavigationController是UIViewController的子类,UINavigationController需要一个UIViewController数组(因此UINavigationController);这告诉我,我可以为UITabBarController提供一个UINavigationController数组(或其子类),以提供所需的交互

    参考:


    }

    仅仅半年后,该链接就已经无效。iOS的发展肯定很快!
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
        NSMutableArray *Mutablearray = [[NSMutableArray alloc] init];
    
            UIViewController *1st_View = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
    
            UINavigationController *Navigation = [[UINavigationController alloc] initWithRootViewController:1st_View];
    
            [Mutablarray addObject:Navigation];
    
            UIViewController *2nd_View = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
    
            UINavigationController *Navigation  = [[UINavigationController alloc] initWithRootViewController:2nd_View];
            [Mutablearray addObject:Navigation];
    
        self.tabBarController = [[UITabBarController alloc] init];
        self.tabBarController.viewControllers = Mutablearray;
        self.window.rootViewController = self.tabBarController;
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UITabBarController *tab = [[UITabBarController alloc] init];
    
    
    SimpleTableViewController *tableView = [[SimpleTableViewController alloc] init];
    UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:tableView];
    UITabBarItem *item = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:0];
    nav1.tabBarItem = item;
    
    
    AboutViewController *about = [[AboutViewController alloc] init];
    UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:about];
    UITabBarItem *item2 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
    nav2.tabBarItem = item2;
    
    tab.viewControllers = @[nav1,nav2];
    
    self.window.rootViewController = tab;
    [self.window makeKeyAndVisible];
    return YES;