我有一个包含三个选项卡的 tabBarController。我只想在第一个 ViewController 中将 rightBarButtonItem 显示到导航栏,但是当我回来时我希望它再次可见。如何做到这一点?
我尝试为 BarButtonItem 设置 enabled=NO,但结果并不好。
我还尝试在 View 更改时将 BarButtonItem 设置为 nil,但当我返回时却消失了。
我将 BarButtonItem 从 viewDidLoad 移动到 viewWillAppear,但它没有正常工作。
这是 rightBarButtonItem 到第一个 ViewController 的 viewDidLoad 的代码。
UIImage *refreshButtonImage = [UIImage imageNamed:@"9B_Info.png"];
UIImage *refreshButtonImageB = [UIImage imageNamed:@"9A_Info.png"];
UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
[refreshButton setImage:refreshButtonImage
forState:UIControlStateNormal];
[refreshButton setImage:refreshButtonImageB
forState:UIControlStateHighlighted];
[refreshButton setImage:refreshButtonImageB
forState:UIControlStateSelected];
refreshButton.frame = CGRectMake(0, 0, 30, 30);
[refreshButton addTarget:self
action:@selector(showImageInfo)
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *refreshBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:refreshButton];
self.refreshBtn=refreshBarButtonItem;
[self.tabBarController.navigationItem setRightBarButtonItem:self.refreshBtn];
最佳答案
您是使用 Storyboard还是全部以编程方式使用?试试这个:
1-打开新项目(单一 View )
2- 进入 Storyboard -> 添加导航 Controller
3-删除 TableView Controller
4- 将您的导航 Controller 设置为启动 Controller (将指向您的 View Controller 的箭头拖动到您的导航 Controller )
5- 将您的 View Controller 设置为导航 Controller 的 Root View Controller
6- 在下方填写您的代码和@Apurv 的解决方案
关于ios - 从 TabBarController 的导航 Controller 隐藏 BarButton 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783390/