uitabbar 和 uitabbaritem

Posted

技术标签:

【中文标题】uitabbar 和 uitabbaritem【英文标题】:uitabbar and uitabbaritem 【发布时间】:2011-06-30 15:28:58 【问题描述】:

我正在尝试将 UITabBarItems 添加到 UITabBar 而不是标签栏控制器。这是我试图做的。当我调用 setItems 时它总是崩溃。哪位大神能指点一下。

My_Accounts *my_AccountsVC = [[My_Accounts alloc] init];
Payments *paymentsVC = [[Payments alloc] init];
Transfer *transferVC = [[Transfer alloc] init];
NSArray *VCArray = [[NSArray alloc] initWithObjects:my_AccountsVC,paymentsVC,transferVC, nil];
[self.tabbar setItems:VCArray];

谢谢

【问题讨论】:

【参考方案1】:

如果您查看 items,它需要一个 UITabBarItems 数组,而不是您似乎正在传递的 UIViewController 子类。

您必须跟踪其他地方的视图控制器并传递UITabBarItems 数组并在UITabBar 的委托中处理视图控制器。

或者更好,使用UITabBarController

【讨论】:

我想要做的是我有一个标签栏,并希望为每个项目添加不同的视图,就像我们在标签栏控制器中所拥有的一样。我不知道如何为 tabbarItem 分配视图控制器【参考方案2】:

我相信您误解了 UITabBarController 的工作原理 (documentation link)。您必须使用viewControllers 属性将UIViewControllers 添加到UITabBarController

您应该阅读的最后一行:

[tabBarController setViewControllers:VCArray];

UITabBarControllertabBar 属性是只读的。你不能这样设置。

如果你有一个UITabBar (documentation link) 而没有一个UITabBarViewController,那么你将需要使用这个方法:

- (void)setItems:(NSArray *)items animated:(BOOL)animated

但是,这些项目不是UIViewControllers!它们是UITabBarItem (documentation link) 的实例。您可以通过将它们放入一个数组来一次设置它们,或者您可以为每个视图控制器设置它们。您可以使用多个系统项目(更多、收藏夹等),也可以使用– initWithTitle:image:tag: 创建自定义项目。

【讨论】:

【参考方案3】:

代码似乎错误。我猜

[self.tabbar setItems:VCArray];

上面的行应该有 UITabBarItems 数组的参数。我猜你通过了 UIViewController 的项目。您应该创建 UITabbarItems 并在 setItems 方法中传递该数组。

您应该执行以下操作:

    UITabBarItem *tabOne = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0];
    UITabBarItem *tabTwo = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1];

    NSArray *arrTabbarItems = [NSArray arrayWithObjects:tabOne,tabTwo, nil];

    [tabbar setItems:arrTabbarItems];

我不确定它会做什么,因为我一直在使用 UITabBarController。希望对您有所帮助。

【讨论】:

如何将视图分配给特定的 tabbaritem??

以上是关于uitabbar 和 uitabbaritem的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏 UINavigationBar 和 UITabBar 动画?

UITabBar 和 tableView

uitabbar 和 uitabbaritem

包含 UITableView 和 UITabBar 的视图

UITabBar 获取选中项

NavigationControllers 和 UITabBar