在我的应用程序中(基于Tab栏应用程序XCode模板)我使用UITabBarController来显示用户可以访问的应用程序的不同部分的列表.
默认情况下,当有超过5个项目时,UITabBarController在选项卡栏中显示"更多"按钮.此外,它允许用户选择他希望在标签栏中可见的项目.
目前我无法实现保存和加载标签栏控制器的状态,所以我想禁用"编辑"按钮.
有没有办法禁用/隐藏UITabBarController的"更多"导航控制器上显示的"编辑"栏按钮?
我试过了:
tabBarController.moreNavigationController.navigationBar.topItem.rightBarButtonItem = nil;
和
tabBarController.moreNavigationController.navigationBar.topItem.rightBarButtonItem.enabled = NO;
但他们似乎没有工作.
成为moreNavigationController
(它是一个UINavigationController)的代表并添加:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { UINavigationBar *morenavbar = navigationController.navigationBar; UINavigationItem *morenavitem = morenavbar.topItem; /* We don't need Edit button in More screen. */ morenavitem.rightBarButtonItem = nil; }
现在它不会出现.要考虑的关键是编辑按钮不是在控制器创建之后,而是在显示视图之前出现,我们应该静静地坐到那一刻,然后,当控制器要显示屏幕时,我们将按下按钮以便它没有机会再创造它.:)
customizableViewControllers
是一个数组; 将其设置为空数组以禁用所有编辑.
tabBarController.customizableViewControllers = [NSArray arrayWithObjects:nil];
tabBarController .customizableViewControllers = nil;
我试过了,这是一个例子.
在AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Add the tab bar controller's view to the window and display. [self.window addSubview:tabBarController.view]; [self.window makeKeyAndVisible]; //setting delegate to disable edit button in more. tabBarController.moreNavigationController.delegate = self; return YES; }
删除"编辑"按钮
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { UINavigationBar *morenavbar = navigationController.navigationBar; UINavigationItem *morenavitem = morenavbar.topItem; /* We don't need Edit button in More screen. */ morenavitem.rightBarButtonItem = nil; }
在你的AppDelegate.h中
@interface TestAppDelegate : NSObject
如我错了请纠正我.