Скрыть элемент правой кнопки навигации в iPhone - PullRequest
6 голосов
/ 18 мая 2011

Я хочу скрыть rightNavigationBarItem при загрузке моего ViewController.Как это возможно?Я пробовал этот код, но он не работает.

self.navigationItem.rightBarButtonItem = nil;

Ответы [ 7 ]

6 голосов
/ 18 мая 2011

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

5 голосов
/ 18 мая 2011

Привет, это не скрывает, но отключает

 self.navigationItem.rightBarButtonItem.enabled = NO;
2 голосов
/ 18 мая 2011

Прежде всего, вам не следует создавать подклассы UITabBarController, как это четко указано в документации .Это очень рано упоминается в обзоре.

Предполагается, что одна из вкладок указывает на UINavigationController.Вы действительно должны получить прямой доступ к контроллеру представления и сделать что-то вроде viewController.navigationItem.rightBarButtonItem = nil;.

2 голосов
/ 18 мая 2011

поставить эту функцию во всех классах -

  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    self.navigationItem.rightBarButtonItem = nil;
    }    return self;
}
1 голос
/ 25 января 2014

Прямо скрывать правую кнопку не работает Ниже приведен трюк для этого.

Примечание. Это решение работает только для 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";
1 голос
/ 18 мая 2011

Вы должны установить rightBarButtonItem на ноль, прежде чем вставлять свой контроллер в стек навигации.

0 голосов
/ 28 апреля 2019

Я думаю, что лучше всего использовать этот пример строки кода:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:nil style:UIBarButtonItemStylePlain target:nil action:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...