我想使用UITabBarSystemItem作为我的一个tabBarItem的图标,但我使用的是故事板。我不知道该把它放在哪里。如果我在视图的viewDidLoad中设置了它,那么它不会改变,直到您按下tabBar中的按钮。在那之前只有蓝色?方块。
据我所知,您不能在IB检查器中使用UITabBarSystemItems。
更新:
首先我是个白痴。您完全可以在IB检查器中选择图标。
选项卡栏项->标识符->选择您的图标。
但问题仍然是如何以编程的方式来实现它。或者更确切地说,何时/何地?
发布于 2012-09-24 02:32:15
当使用情节提要时,视图控制器使用initWithCoder构造函数初始化,这样您就可以覆盖该函数并在那里设置系统项图标,如下所示
- (id)initWithCoder:(NSCoder*)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1];
}
return self;
}当然,您可以将系统项的值更改为所支持的任何值。苹果列出了他们的here
发布于 2012-01-06 18:37:08
检查下面的代码,看看你的问题:它在我的应用程序中工作。
- (NSArray *) initializeViewControllers
{
NSArray *viewControllerArray = nil;
viewController1 = <View Init Code>
viewController2 = <View Init Code>
viewController3 = <View Init Code>
1stNavController = [[UINavigationController alloc] initWithRootViewController:viewController1];
UIImage *img = [UIImage imageNamed:@"tab_home"];
[1stNavController .tabBarItem initWithTitle:@"Home" image:img tag:1];
2ndNavController = [[UINavigationController alloc] initWithRootViewController:viewController2];
img = [UIImage imageNamed:@"tab_timeDrop"];
[2ndNavController .tabBarItem initWithTitle:@"Time Entry" image:img tag:2];
3rdNavController = [[UINavigationController alloc] initWithRootViewController:viewController3];
img = [UIImage imageNamed:@"tab_invoiceSummary"];
[3rdNavController.tabBarItem initWithTitle:@"Invoice Summary" image:img tag:3];
viewControllerArray = [NSArray arrayWithObjects:1stNavController,2ndEntryNavController,3rdReportNavController, nil];
return viewControllerArray;
}此代码将返回具有图像的视图控制器,用于各自的选项卡。在这里,我在选项卡控制器中使用了导航控制器。您还可以使用视图控制器而不是导航控制器。
只需添加此代码并初始化您的选项卡控制器,appdidfinishlaunching方法中如下所示:
tabbarController = [[UITabBarController alloc] init];
_tabbarController.viewControllers = [self initializeViewControllers];
self.window.rootViewController = tabbarController;希望它能成功。
请回复。
发布于 2014-02-20 00:15:36
嗯,这很简单!
对于where ->,创建一个自定义TabBarController (例如WBTabBarController)。在您的StoryBoard中显式设置它。
对于->刚刚覆盖WBTabBarController的viewDidLoad并为TabBarItems设置图像的方式。在下面的示例中,这是使用NIKFontAwesomeIconFactory完成的:
#import "WBTabBarController.h"
#import "NIKFontAwesomeIcon.h"
#import "NIKFontAwesomeIconFactory.h"
#import "NIKFontAwesomeIconFactory+iOS.h"
@interface WBTabBarController ()
@end
@implementation WBTabBarController
- (void)viewDidLoad
{
[super viewDidLoad];
NIKFontAwesomeIconFactory *factory = [NIKFontAwesomeIconFactory tabBarItemIconFactory];
UITabBarItem *item0 = self.tabBar.items[0];
item0.image = [factory createImageForIcon:NIKFontAwesomeIconApple];
UITabBarItem *item1 = self.tabBar.items[1];
item1.image = [factory createImageForIcon:NIKFontAwesomeIconStackOverflow];
}
@endhttps://stackoverflow.com/questions/8761468
复制相似问题