我正在尝试将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];谢谢
发布于 2011-06-30 23:33:45
如果你看一下items,它需要一个UITabBarItem数组,而不是你要传递的UIViewController子类。
您必须跟踪其他地方的视图控制器,并传递一个UITabBarItem数组并在UITabBar的委托中处理视图控制器。
或者更好的是,使用UITabBarController。
发布于 2011-06-30 23:32:44
我相信您误解了UITabBarController的工作原理(documentation link)。必须使用viewControllers属性将UIViewController%s添加到UITabBarController。
您的最后一行应该是:
[tabBarController setViewControllers:VCArray];
UITabBarController的tabBar属性是只读的。您不能设置它。
如果您有一个没有UITabBarViewController的UITabBar (documentation link),那么您将需要使用以下方法:
- (void)setItems:(NSArray *)items animated:(BOOL)animated但是,这些项目不是UIViewController%s!它们是UITabBarItem (documentation link)的实例。您可以通过将它们放入一个数组来一次性设置它们,或者您可以为每个视图控制器设置它们。您可以使用多个系统项目(更多、收藏等),也可以使用– initWithTitle:image:tag:创建自定义项目。
发布于 2011-06-30 23:34:32
代码似乎是错误的。我猜
[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。希望这能有所帮助。
https://stackoverflow.com/questions/6537248
复制相似问题