不同的UITabbar按钮

Posted

技术标签:

【中文标题】不同的UITabbar按钮【英文标题】:Different UITabbar buttons 【发布时间】:2011-12-23 12:45:19 【问题描述】:

我的问题是关于 UITabbar 控制器的。 我有一个 UInavigation 控制器和一个 UITabbarcontroller 都在我的 Appdelegate 中声明。但是当我的 UIViewController 被 NavigationController 更改时,我希望我的标签栏按钮发生变化。

 SettingsViewController *sett = [[SettingsViewController alloc]init];

self.navigationController = [[UINavigationController alloc]init];
[self.navigationController.navigationBar setTranslucent:NO];
[self.navigationController.navigationBar setTintColor:[UIColor blackColor]];
self.navigationController.viewControllers = [NSArray arrayWithObject:viewController1];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:self.navigationController,sett, nil];

self.window.rootViewController = self.tabBarController;

如何做到这一点?

【问题讨论】:

【参考方案1】:

使用 UINavigationControllerDelegate

@interface SettingsViewController : UIViewController <UINavigationControllerDelegate> 

在.h文件中

然后

.m 文件中的self.navigationController.delegate = self;

并且您使用方法检测 NavigationController 中的变化

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

【讨论】:

还是不行,照你说的做,把委托方法放在 SettingsViewController 中,但两个按钮仍然在我的屏幕上,在我的应用程序的任何地方,相同的 tabbarItems 在 TabbarController 上。 @user1113419 不工作什么?当您显示新控制器时,navigationController didShowViewController 方法确实调用了。如果你在这些时候需要做某事,你需要在这个方法中自己动手。 这两种方法自己什么都不做。但是您可以在其中更改标签栏按钮,例如 viewController.tabBarItem.image = [UIImage imageNamed:@"some_icon.png"];

以上是关于不同的UITabbar按钮的主要内容,如果未能解决你的问题,请参考以下文章

我想要一个没有 UITabBar 的 UITabBarController

IOS:UITabbar 项目单击一次又一次,它正在减少IOS 7 中的UITabbar 按钮项目大小

单击按钮时UITabbar消失

自动突出显示 UITabBar 按钮

iOS之自定义UITabBar替换系统默认的(添加“+”号按钮)

确定 UITabBar 项属于哪个 UIViewController 子类