0

我正在尝试在我的 IOS 应用程序中创建自定义选项卡。我遵循了这个简单的指南http://kurrytran.blogspot.se/2011/10/ios-5-tutorial-creating-custom-tab-bar.html每个选项卡应该有 2 个背景图片,一个被选中,一个被选中未选中。我的问题是,在我的真实项目中,我的标签栏控制器和视图控制器之间也有导航控制器,这似乎把一切都搞砸了。根本没有任何反应,我所有的标签都是黑色的,里面没有任何内容。我该怎么做才能让它工作?

这是放在 firstviewCotroller.m

- (void)viewDidLoad
{
UIImage *selectedImage0 = [UIImage imageNamed:@"HomeDB.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"HomeLB.png"];

UIImage *selectedImage1 = [UIImage imageNamed:@"ScheduleDB.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"ScheduleLB.png"];

UIImage *selectedImage2 = [UIImage imageNamed:@"BuildingsDB.png"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"BuildingsLB.png"];

UIImage *selectedImage3 = [UIImage imageNamed:@"InformationDB.png"];
UIImage *unselectedImage3 = [UIImage imageNamed:@"InformationLB.png"];

UIImage *selectedImage4 = [UIImage imageNamed:@"MoreDB.png"];
UIImage *unselectedImage4 = [UIImage imageNamed:@"MoreLB.png"];

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
UITabBarItem *item4 = [tabBar.items objectAtIndex:4];

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];
[item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3];
[item4 setFinishedSelectedImage:selectedImage4 withFinishedUnselectedImage:unselectedImage4];
[super viewDidLoad];

}
4

2 回答 2

0

将 UINavigationControllers 分别放在 MainWindow.xib 中的每个选项卡中,然后在您的 App 委托中使用上述代码更改 App Delegate 中的选项卡栏项目不是更好。

我在我的 App Delegate 的“didFinishLaunchingWithOptions”方法中执行以下操作。

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"tab-1-selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab-1.png"]];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"tab-2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab-2.png"]];
[item2 setFinishedSelectedImage:[UIImage imageNamed:@"tab-3-selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab-3.png"]]; 
于 2012-09-27T14:53:53.480 回答
0

感谢您的回答 AndyDev!这是我下面的代码....

我的 AppleDelegate.h 文件:

@interface AppDelegate : UIResponder <UIApplicationDelegate>{


UITabBarController *tabBarController;
}

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@end

我的 AppleDelegate.m 文件:

#import "AppDelegate.h"

@implementation AppDelegate
@synthesize tabBarController;
@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
UITabBarItem *item4 = [tabBar.items objectAtIndex:4];  

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"BuildingsDB.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"BuildingsLB.png"]];

[item1 setFinishedSelectedImage:[UIImage imageNamed:@"BuildingsDB.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"BuildingsLB.png"]];

[item2 setFinishedSelectedImage:[UIImage imageNamed:@"BuildingsDB.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"BuildingsLB.png"]];

 [item3 setFinishedSelectedImage:[UIImage imageNamed:@"BuildingsDB.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"BuildingsLB.png"]];  

 [item4 setFinishedSelectedImage:[UIImage imageNamed:@"BuildingsDB.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"BuildingsLB.png"]]; 

return YES;
}

我可能做错了什么。我以前从未尝试在 IOS 中定制任何东西,这是我在 IOS 中开发的第一个项目。我还需要每个 ViewController.m 文件中的任何代码吗?这段代码至少没有任何反应......

于 2012-09-27T15:46:50.140 回答