【问题标题】:hide and show left navigation bar button on demand in iOS-7在 iOS-7 中按需隐藏和显示左侧导航栏按钮
【发布时间】:2014-09-25 02:11:31
【问题描述】:

我使用情节提要添加了左侧导航栏按钮。但我希望它在我第一次加载屏幕时隐藏。然后作为对其他事情的回应,我希望它显示出来。导航栏有一个隐藏后退按钮的方法。但是没有隐藏/显示左键的方法。有没有一种简单的方法可以做到这一点?还是我必须使用两种方法:隐藏方法创建一个空按钮,显示方法创建正确的按钮?有问题的按钮只是 iOS 提供的 Add 模板(这使得只使用故事板中的那个比创建我自己的更容易)。

【问题讨论】:

    标签: ios xcode ios7 storyboard uinavigationitem


    【解决方案1】:

    我是这样解决的

    -(void) hideAndDisableRightNavigationItem
    {
        [self.navigationItem.rightBarButtonItem setTintColor:[UIColor clearColor]];
        [self.navigationItem.rightBarButtonItem setEnabled:NO];
    }
    
    -(void) showAndEnableRightNavigationItem
    {
        [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]];
        [self.navigationItem.rightBarButtonItem setEnabled:YES];
    }
    

    【讨论】:

    • 这很性感。堆栈上的最佳解决方案。
    • 我在回答类似问题时引用了这一点。希望你不要介意。 stackoverflow.com/questions/5588767/…
    • 如果我有多个导航栏按钮项怎么办?向左或向右……
    【解决方案2】:

    @learner 答案的 Swift 版本

    func hideAndDisableRightNavigationItem (){
      self.navigationItem.rightBarButtonItem?.enabled = false
      self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor()
    }
    
    func showAndEnableRightNavigationItem(){
       self.navigationItem.rightBarButtonItem?.enabled = true
       self.navigationItem.rightBarButtonItem?.tintColor = UIColor. blackColor()
    }
    

    【讨论】:

      【解决方案3】:

      这就是我所做的。在初始屏幕上,我想隐藏导航栏:

       self.navigationController.navigationBarHidden = YES;
      

      在第二个屏幕上我想显示导航栏,所以我设置:

       self.navigationController.navigationBarHidden = NO;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多