6

我想在我的 ViewController 加载时隐藏 rightNavigationBarItem。这怎么可能?我已经尝试过这段代码,但它不起作用。

self.navigationItem.rightBarButtonItem = nil;
4

7 回答 7

6

在 Xcode 4. 中使用这些是行不通的;

self.navigationItem.leftBarButtonItem.enabled=NO;
self.navigationItem.leftBarButtonItem=nil;
self.navigationController.navigationBar.backItem.hidesBackButton=YES;
[self.navigationItem.leftBarButtonItem release];

我真的很感兴趣你为什么提到 rightBarButtonItem?当您导航时,它的 leftBarButtonItem 会发生变化。

什么工作;

1)self.title =@"";取消屏幕标题,当导航控制器将详细视图推入堆栈时,不会创建返回按钮。

2)用leftBarButtonItem其他东西替换按钮会改变按钮,但不能解决你的问题。

3)另一种选择。隐藏导航栏;[self.navigationController setNavigationBarHidden:YES animated:YES];

于 2011-05-18T08:42:48.360 回答
5

嗨,它不会隐藏,但会禁用

 self.navigationItem.rightBarButtonItem.enabled = NO;
于 2011-05-18T07:56:53.430 回答
2

把这个函数放在所有的类中——

  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    self.navigationItem.rightBarButtonItem = nil;
    }    return self;
}
于 2011-05-18T08:35:43.967 回答
2

首先,您不应该像文档中清楚说明的那样继承 UITabBarController 。概述中很早就提到了它。

假设其中一个选项卡指向UINavigationController. 您应该真正直接访问视图控制器并执行类似viewController.navigationItem.rightBarButtonItem = nil;.

于 2011-05-18T10:51:23.617 回答
1

在将控制器插入导航堆栈之前,您应该将 rightBarButtonItem 设置为 nil。

于 2011-05-18T07:56:43.373 回答
1

直接隐藏右键不起作用下面是这样做的技巧。

注意:此解决方案仅适用于 iOS 7.x。

//To Hide 
self.navigationItem.rightBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.title = @"";

//To Show
self.navigationItem.rightBarButtonItem.enabled = YES;
self.navigationItem.rightBarButtonItem.title = @"DONE";
于 2014-01-25T08:05:25.353 回答
0

我认为最好的方法是通过这个示例行代码:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:nil style:UIBarButtonItemStylePlain target:nil action:nil];
于 2019-04-27T22:49:30.313 回答