在iPhone中隐藏右侧导航栏按钮项

时间:2011-05-18 07:45:43

标签: iphone objective-c navigationbar

我希望在我的ViewController加载时隐藏rightNavigationBarItem。这怎么可能?我已经尝试过这段代码,但它没有用。

self.navigationItem.rightBarButtonItem = nil;

7 个答案:

答案 0 :(得分: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];

答案 1 :(得分:5)

嗨,它不会隐藏但是禁用

 self.navigationItem.rightBarButtonItem.enabled = NO;

答案 2 :(得分:2)

将此功能放在所有类中 -

  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    self.navigationItem.rightBarButtonItem = nil;
    }    return self;
}

答案 3 :(得分:2)

首先,你不应该在documentation中清楚地说明UITabBarController的子类。它在概述中很早就提到过。

假设其中一个标签指向UINavigationController。您应该直接访问视图控制器并执行viewController.navigationItem.rightBarButtonItem = nil;之类的操作。

答案 4 :(得分:1)

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

答案 5 :(得分: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";

答案 6 :(得分:0)

我认为最好的方法是通过以下示例代码:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:nil style:UIBarButtonItemStylePlain target:nil action:nil];