没有标签栏项目的视图的标签栏 iPhone 应用程序

Posted

技术标签:

【中文标题】没有标签栏项目的视图的标签栏 iPhone 应用程序【英文标题】:Tabbar for views without tabbar items iPhone application 【发布时间】:2010-10-04 12:46:59 【问题描述】:

我正在尝试使用标签栏控制器来加载带有底部标签栏项目的主视图,但不会为主视图创建标签栏项目。我设法创建视图,在这些视图上显示标签栏并创建相应的标签栏项目,但我不知道如何不创建标签栏项目。

谢谢 - 希望这是有道理的

【问题讨论】:

我不明白你的问题。你说的是什么意思:“我设法创建视图,在这些视图上显示标签栏并创建相应的标签栏项目,但我不知道如何不创建标签栏项目。” 可以说我有三个视图 - 主页、第一和第二。我希望主页出现在屏幕上,并且我希望第一个和第二个标签出现在标签栏中 - 但我不希望主页标签栏项目出现在任何地方。这可能吗? 不,这没有意义......但我仍然会尝试告诉你一些事情......如果你想要的话,就是在 UIView 中添加一个标签栏,而不是主 UIWindow(与默认选项卡栏项目一样),UIWindow 是 UIView 的子类,即只是另一个视图...因此您可以将其添加到您想要的任何视图中,就像它添加到窗口一样.. 它不允许我将标签栏添加到窗口 【参考方案1】:

您想隐藏标签栏或添加到标签栏控制器的不同项目吗?

隐藏标签栏: tabBarController.tabBar.hidden = YES;

其他: 如果您不想在标签栏中看到某个项目,请不要添加它。管理您加载到标签栏控制器的控制器中的更多视图,例如使用 UINavigationController

【讨论】:

但是如果我不向标签视图控制器添加视图控制器,我看不到标签栏 不将控制器添加到选项卡视图控制器没有任何意义,在这种情况下您不需要一个。当然,如果您不添加控制器,则它是空的,并且您看不到任何选项卡。【参考方案2】:

您可以像此代码示例一样自动创建标签栏:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
   tabBarController = [[UITabBarController alloc] init];

   MyViewController* vc1 = [[MyViewController alloc] init];
   MyOtherViewController* vc2 = [[MyOtherViewController alloc] init];

   NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil];
   tabBarController.viewControllers = controllers;

   // Add the tab bar controller's current view as a subview of the window
   [window addSubview:tabBarController.view];

More about UITabBarControllers

【讨论】:

以上是关于没有标签栏项目的视图的标签栏 iPhone 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 中推送 UIViewController 时如何更改标签栏项目的选定索引

iPhone标签栏应用程序:是不是可以在标签栏内(在其顶部)添加子视图?

iPhone dev - 标签栏视图控制器的缓存值

当您通过标签栏返回视图控制器时卡在子视图上

在基于窗口的应用程序 iPhone 中添加标签栏和导航栏

具有标签栏和导航栏的 iPhone 应用程序