当用户从UITabBarController
中嵌入的起始VC中切换到第二个VC时,我会使用UITabbarItem
方法中的一些代码更改viewWillAppear
的标题第二个视图控制器。
//第二个VC,View WIll出现
UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"VoiceMail";
}
这很好用。
当用户返回起始视图控制器时,我想重新切换标题。
我尝试通过在视图中放置类似的代码来执行此操作,将出现启动视图控制器的方法。
启动VC:ViewWIllAppear
UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"Phone";
}
但它没有效果,标题为Voicemail
。
WOuld感谢任何关于如何改回初始价值的建议。
感谢您的任何建议。
答案 0 :(得分:1)
尝试通过引用“正在启动VC”中的.selectedItem
来更改“第二个”标签标题将无效,因为此时.selectedItem
StartingVC
。
一种方法是保存对SecondVC
索引的引用...然后,在中 VC,在viewWillDisappear
上,您可以重置其标签的标题:< / p>
全部在SecondVC
:
#import "ChangeSecondViewController.h"
@interface ChangeSecondViewController ()
@property (assign, readwrite) NSInteger myTabIndex;
@end
@implementation ChangeSecondViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITabBarItem *selectedItem = self.tabBarController.tabBar.selectedItem;
if (selectedItem) {
selectedItem.title = @"VoiceMail";
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
_myTabIndex = self.tabBarController.selectedIndex;
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
UITabBarItem *myTabItem = [[self.tabBarController.tabBar items] objectAtIndex:_myTabIndex];
if (myTabItem) {
myTabItem.title = @"Phone";
}
}
@end