我想使用UITabBarSystemItem作为我的一个tabBarItem的图标,但我正在使用故事板.我不确定在哪里设置它.如果我在视图的viewDidLoad中设置它,那么在按TabBar中的按钮之前它不会改变.在那之前它只是蓝色?广场.
据我所知,你不能在IB检查器中使用UITabBarSystemItems.
更新:
首先,我是个白痴.您可以在IB Inspector中完全选择图标.
标签栏项目 - >标识符 - >选择您的图标.
但问题仍然是如何以编程方式进行.或者更确切地说何时/何地
Joh*_*n F 11
使用故事板时,视图控制器使用initWithCoder构造函数初始化,因此您可以覆盖该函数并在其中设置系统项图标,如此
- (id)initWithCoder:(NSCoder*)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以将系统项的值更改为支持的任何值.Apple 在这里列出了它们
检查此代码是否存在问题:它在我的应用中运行.
- (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;
}
Run Code Online (Sandbox Code Playgroud)
此代码返回带有图像的视图控制器,用于各自的选项卡.这里我在tabbar控制器中使用了Navigation Controller.您也可以使用视图控制器而不是导航控制器.
只需添加此代码并按如下appdidfinishlaunching方法初始化tabbar控制器:
tabbarController = [[UITabBarController alloc] init];
_tabbarController.viewControllers = [self initializeViewControllers];
self.window.rootViewController = tabbarController;
Run Code Online (Sandbox Code Playgroud)
希望它有效.
请回复.
| 归档时间: |
|
| 查看次数: |
13953 次 |
| 最近记录: |