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
内部
目前,我有mainUITabBarController
,在应用程序委托中有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,并将导航控制器对象添加到UINavigationControllerUINavigationController是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;