【问题标题】:Hide the rightNavigationBar button item in iPhone在 iPhone 中隐藏右侧导航栏按钮项
【发布时间】:2011-05-18 07:45:42
【问题描述】:

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

self.navigationItem.rightBarButtonItem = nil;

【问题讨论】:

  • 你设置rightBarButtonItem的其他地方在哪里?可能在时间视图出现时再次添加。
  • 实际上我创建了一个从 uitabbarcontroller 继承的标签栏类。在该类本身中我添加了右栏按钮项。但是我只为一个类设置了右栏按钮但是当我运行我的程序时,rightbarbutton 也被设置为所有其他类。谢谢
  • 嗯..那么你是继承UITabBarController还是UITabBar?您是否将TabBarController 放入UINavigationController 中?
  • 我是 UiTabbarcontroller 的子类。不,我没有将 tabbarcontroller 放在导航控制器中
  • 为什么每个人都在质疑他为什么要这样做?我有完全相同的要求。与其他人/公司合作时,您并不总是能够控制设计。

标签: iphone objective-c navigationbar


【解决方案1】:

在 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];

【讨论】:

  • @eSpecialized:这是不正确的。此外,他确实询问了右侧栏按钮,而您假设他不知道他想隐藏哪个按钮是......奇怪。
  • @HenrikErlandsson - 因为当视图控制器加载时。没有左或右按钮,除非它是导航堆栈的一部分。这个问题表明他在使用左键时遇到了问题。也许应该询问对原始问题的编辑。我把这个问题读成一个导航堆栈推送,这意味着左键。
【解决方案2】:

您好,它不会隐藏而是禁用

 self.navigationItem.rightBarButtonItem.enabled = NO;

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      首先,您不应该像 documentation 中明确说明的那样继承 UITabBarController。概述中很早就提到了这一点。

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          注意:此解决方案仅适用于 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";
          

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-10-01
              • 2018-09-04
              • 1970-01-01
              • 2014-02-27
              • 1970-01-01
              • 1970-01-01
              • 2014-09-25
              • 2016-06-12
              相关资源
              最近更新 更多