从 UITabBarController 的 moreNavigationController 中移除 rightBarButtonItem

Posted

技术标签:

【中文标题】从 UITabBarController 的 moreNavigationController 中移除 rightBarButtonItem【英文标题】:Removing the rightBarButtonItem from moreNavigationController of UITabBarController 【发布时间】:2017-02-21 12:41:23 【问题描述】:

我在我的应用程序中添加了tabBar,并使用代码删除了rightBarButtonItem

UITableView *moreTableView = (UITableView *)tabController.moreNavigationController.topViewController.view;
    tabController.moreNavigationController.navigationBar.topItem.rightBarButtonItem = nil;

现在,当我导航到其他屏幕并单击tabBarMore 按钮时,rightBarButtonItem 再次出现。如果我使用后退导航按钮,它不会出现并且工作正常。但是,当我从 tabBar 中点击 More 按钮时,它会再次出现。

【问题讨论】:

【参考方案1】:

我用过

tabController.customizableViewControllers = nil;

效果很好:)

【讨论】:

这比moreNavigationController.navigationBar.topItem.rightBarButtonItem = nil; 工作得更好,因为它不会在其中一个 VC 可见时触摸 More 选项卡上的 VC 意外删除 rightBarButtonItem。只要设置了 tabBar VC,就执行此操作。 不幸的是,这对我不起作用,还不能弄清楚为什么。编辑:看起来它必须在设置viewControllers 属性之后设置【参考方案2】:

你应该在你想摆脱它的每个 viewControllers viewDidLoad 中调用 navigationItem.rightBarButtonItem = nil

另外,您能否展示更多您的实现代码?

【讨论】:

我不想隐藏后退按钮。我想从 moreNavigationController 中隐藏编辑按钮。

以上是关于从 UITabBarController 的 moreNavigationController 中移除 rightBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章

目前从 Appdelegate 快速转到 UITabBarController

从 UITabBarController 推送的 UISplitViewController

从 NSObject 类更新 UITabBarController 栏项目

如何从 View 获取数据到 UITabBarController

从 UITabBarController 和 UINavigationController 访问 UIViewController

UISplitview:从 appDelegate 访问 UITabBarController