如何将选项卡栏添加到默认视图并使用导航控制器与其他视图通信

Posted

技术标签:

【中文标题】如何将选项卡栏添加到默认视图并使用导航控制器与其他视图通信【英文标题】:how to add a tab Bar to a Default view and communicate with other views using navigation controller 【发布时间】:2012-01-24 07:28:16 【问题描述】:

这可能很简单,但无法找到确切的解决方案。我使用的是 xcode 4.2。

我想在我的应用程序的一个视图中使用标签栏。我浏览了许多教程,所有教程都与基于导航的应用程序和其他基于视图的应用程序有关。即使我了解如何在主视图的故事板中添加标签栏控制器。

我需要的是我有一个名为 Homepage.h 和 .m 和 .xib 的类,它们是 UIViewController 类的子类。同样,我的类不是主类,它稍后会为其中一个视图添加。所以我想添加一个选项卡bar 并与 navigationBar 和其他视图进行通信,所以我该怎么做请给我一些示例。

问题是我想将标签栏添加到默认 UIView 并与导航控制器和其他视图进行通信。我不想从实用程序中拖动标签栏控制器。如果我拖动我如何让它从一个视图移动到另一个视图,因为我已经有一个默认 UIview。请给我链接或任何教程,我可以添加标签栏和使用导航控制器在视图之间切换。

注意:我正在使用基于单视图的应用程序

【问题讨论】:

我认为你需要一个标签栏来显示应用程序中所有视图的标签栏 @KAREEM MAHAMMED ya 我需要所有视图 【参考方案1】:

在 AppDelegate.h 中取 UINavigationController 对象和 UITabBarController 对象

在 AppDelegate.h 中

   First *first;
   Second *second;
   Third *third;

UINavigationController *navController;

    UITabBarController *tabbar;

@property (nonatomic, 保留) UITabBarController *tabbar;

@property (nonatomic, 保留) UINavigationController *navController;

IN AppDelegate.m

@synthesize tabbar,navController;

在 ApplicationdidFinishLaunching 中

tabbar=[[UITabBarController alloc]init];

first=[[First alloc]initWithNibName:@"First" bundle:nil];
second=[[Second alloc]initWithNibName:@"Second" bundle:nil];
third=[[Third alloc]initWithNibName:@"Third" bundle:nil];

navController=[[UINavigationController alloc]initWithRootViewController:first];

NSArray *viewControllerArray=[[[NSArray alloc] initWithObjects:navController1,second,third,nil] autorelease];

[self.window addSubview:tabbar.view];

[tabbar setViewControllers:viewControllerArray];

[first setTitle:@"First"];

[second setTitle:@"Second"];

[third setTitle:@"Third"];

编写此代码,不需要将 Tabbar 放在 XIB 中。试试这个代码,它会帮助你。

【讨论】:

以上是关于如何将选项卡栏添加到默认视图并使用导航控制器与其他视图通信的主要内容,如果未能解决你的问题,请参考以下文章

如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?

在每个选项卡错误处使用导航控制器从视图控制器转换到选项卡栏控制器

如何在保留选项卡栏的同时将子视图控制器添加到选项卡式视图控制器?

将 UIViewController 推送到导航堆栈时如何显示选项卡栏

在将导航控制器弹出回根视图的选项卡栏上检测到双击

将标签栏添加到导航控制器