Hide the rightBarButtonItem of a navigation controller

前端 未结 3 1552
盖世英雄少女心
盖世英雄少女心 2021-02-19 03:45

Does anyone know how to hide a rightBarButtonItem of a UINavigationController? In my application, I have an edit button as a rightBarButtonItem

相关标签:
3条回答
  • 2021-02-19 04:16

    Try

    self.navigationItem.rightBarButtonItem = nil;
    

    When you want it back though you will have to instanciate a button i.e.

    UIBarButtonItem *rightBarButton = 
     [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
                                                   target:self
                                                   action:@selector(searchBar:)];
    self.navigationItem.rightBarButtonItem = rightBarButton;
    [rightBarButton release];
    
    0 讨论(0)
  • 2021-02-19 04:22

    To Hide the right button: self.navigationItem.rightBarButtonItem = nil;

    Now, to show it:

    1. If you setup the right button in your view controller by assigning it to self.editButtonItem then simply assign it again in order to show it:

      self.navigationItem.rightBarButtonItem = self.editButtonItem;

    2. If you setup the right button in your view controller by allocating and initing a UIBarButtonItem, then simply keep a reference to the UIBarButtonItem in your view controller, and assign it again when you need to show it.

    0 讨论(0)
  • 2021-02-19 04:23

    If you need to hide/show the button based on some condition, try this:

    if (condition) { 
        self.navigationItem.rightBarButtonItem.title = @"";
        self.navigationItem.rightBarButtonItem.enabled = NO;
    } else {
        self.navigationItem.rightBarButtonItem.title = @"my button title";
        self.navigationItem.rightBarButtonItem.enabled = YES;
    }
    

    This way you don't have to save a reference to the button in a property or worry about wiring up the action on a new button.

    0 讨论(0)
提交回复
热议问题