Iphone UITabBarController不显示tabbarItems名称
我正在创建基于UTabbarController的应用程序。我以编程方式创建了该选项卡栏。除了我看不到tabBatItem标题外,一切都很顺利。我已经正确初始化了所有内容,但当应用程序启动时,我看到的只是第一个选项卡标题。但如果我选择第二个tabbaritem或诸如此类,我可以看到他们的名字。我不知道这里出了什么问题。这是我的密码。如果我犯了什么错误,请告诉我 谢谢Iphone UITabBarController不显示tabbarItems名称,iphone,ios,uitabbarcontroller,uitabbaritem,Iphone,Ios,Uitabbarcontroller,Uitabbaritem,我正在创建基于UTabbarController的应用程序。我以编程方式创建了该选项卡栏。除了我看不到tabBatItem标题外,一切都很顺利。我已经正确初始化了所有内容,但当应用程序启动时,我看到的只是第一个选项卡标题。但如果我选择第二个tabbaritem或诸如此类,我可以看到他们的名字。我不知道这里出了什么问题。这是我的密码。如果我犯了什么错误,请告诉我 谢谢 - (BOOL)application:(UIApplication *)application didFinishLaunchi
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
HomeViewController *viewController1 = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
UINavigationController*navController1=[[UINavigationController alloc]initWithRootViewController:viewController1];
navController1.title=@"Home";
[viewController1 release];
TrainerTableViewController *viewController2 = [[TrainerTableViewController alloc] initWithNibName:@"TrainerTableViewController" bundle:nil];
UINavigationController*navController2=[[UINavigationController alloc]initWithRootViewController:viewController2];
navController1.title=@"Trainer";
[viewController2 release];
SettingsTableViewController *viewController8 = [[[SettingsTableViewController alloc] initWithNibName:@"SettingsTableViewController" bundle:nil] autorelease];
UINavigationController*navController8=[[[UINavigationController alloc]initWithRootViewController:viewController8]autorelease];
navController1.title=@"Settings";
AboutUsViewController *viewController9 = [[[AboutUsViewController alloc] initWithNibName:@"AboutUsViewController" bundle:nil] autorelease];
UINavigationController*navController9=[[[UINavigationController alloc]initWithRootViewController:viewController9]autorelease];
navController1.title=@"About Us";
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController1, navController2,navController8, navController9, nil];
[navController1 release];
[navController2 release];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
可以通过在视图控制器的.m文件中为每个选项卡栏项包含下面的代码来完成此操作。代码还包括如何更改选项卡栏上的图像
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
self.title = @"Apply Now";
self.tabBarItem.image = [UIImage imageNamed:@"tbApplyNow.png"];
}
return self;
}
可以通过在视图控制器的.m文件中为每个选项卡栏项包含下面的代码来完成此操作。代码还包括如何更改选项卡栏上的图像
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
self.title = @"Apply Now";
self.tabBarItem.image = [UIImage imageNamed:@"tbApplyNow.png"];
}
return self;
}
您只是在为navController1设置标题。对于您创建的每个nab控制器,您需要设置该控制器的标题 试试这个: 更改: 导航控制器1.标题=@“培训师”; 到 导航控制器2.标题=@“培训师” 更改: navController1.title=@“设置”; 到 navController8.title=@“设置” 更改: navController1.title=@“关于我们”; 到 导航控制器9.title=@“关于我们”
此外,您没有释放navController8或9,这将导致内存泄漏您只是在设置navController1的标题。对于您创建的每个nab控制器,您需要设置该控制器的标题 试试这个: 更改: 导航控制器1.标题=@“培训师”; 到 导航控制器2.标题=@“培训师” 更改: navController1.title=@“设置”; 到 navController8.title=@“设置” 更改: navController1.title=@“关于我们”; 到 导航控制器9.title=@“关于我们”
另外,您没有释放navController8或9,这将导致内存泄漏您实际上是在为NavigationController设置标题。另外,注意您的代码多次设置navController1的标题,而不是为其他代码设置标题 通过为每个控制器设置
tabBarItem
s,可以设置选项卡栏的标题
您可以选择子类化,或者只是将其包含在AppDelegate中的应用程序:didFinishLaunchingWithOptions:
方法中
下面是一个例子:
UITabBarItem *tbi1 = [navController1 tabBarItem];
[tbi1 setTitle:@"Home"];
UIImage *i1 = [UIImage imageNamed:@"hometabicon.png"];
[tbi1 setImage:i1];
这将把tab1的标题设置为“Home”,并将tabBar图标设置为名为“hometabicon.png”的文件
您可以为其他每个选项卡重复相同的模式。您实际上是在为NavigationController设置标题。另外,注意您的代码多次设置navController1的标题,而不是为其他代码设置标题 通过为每个控制器设置
tabBarItem
s,可以设置选项卡栏的标题
您可以选择子类化,或者只是将其包含在AppDelegate中的应用程序:didFinishLaunchingWithOptions:
方法中
下面是一个例子:
UITabBarItem *tbi1 = [navController1 tabBarItem];
[tbi1 setTitle:@"Home"];
UIImage *i1 = [UIImage imageNamed:@"hometabicon.png"];
[tbi1 setImage:i1];
这将把tab1的标题设置为“Home”,并将tabBar图标设置为名为“hometabicon.png”的文件
您可以为其他每个选项卡重复相同的模式。解决此问题的最佳方法是设置viewController而不是navigationController的标题
viewController1.tabBarItem.title = @"CohesiveSelf";
对所有选项卡执行此操作。解决此问题的最佳方法是设置viewController而不是navigationController的标题
viewController1.tabBarItem.title = @"CohesiveSelf";
对所有选项卡执行此操作。谢谢@Louie!!你救了我一天+答案是1。但我有一个问题:为什么它只与initWithNibName一起工作而不与viewDidLoad一起工作?谢谢@Louie!!你救了我一天+答案是1。但我有一个问题:为什么它只使用initWithNibName而不使用viewDidLoad?