Удалить кнопку навигации - PullRequest
5 голосов
/ 28 февраля 2011

Эй, я написал класс (A), который наследует некоторые функции, включая реализацию кнопки навигации.Класс A имеет режим просмотра и редактирования, я хочу показывать кнопку только в режиме редактирования.Пока что мне не удалось удалить эту кнопку, и я не хочу создавать другой класс только для редактирования.

Также другие классы наследуют эту функциональность, поэтому я не хочу возиться с родителем.

Код, который я использую для создания кнопки, приведен ниже:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    
UIImage *buttonImage = [UIImage imageNamed:@"button.png"];

[button addTarget:self 
               action:@selector(buttonPressed:) 
     forControlEvents:UIControlEventTouchUpInside];

button.bounds = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);

[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setTitle:NSLocalizedString(@"BUTTON", @"") 
            forState:UIControlStateNormal];

LPRBSLabel *buttonLabel = [[LPRBSLabel alloc] initWithStyle:UICustomeButtonTitle];
[button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, -5.0, 0.0)];

button.titleLabel.font = buttonLabel.font;
[button setTitleColor:buttonLabel.textColor forState:UIControlStateNormal];
[buttonLabel release];

UIBarButtonItem *barLeftInfoButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = barLeftInfoButton;
[barLeftInfoButton release];

Ответы [ 4 ]

14 голосов
/ 28 февраля 2011

Мне удалось решить эту проблему с помощью:

self.navigationItem.leftBarButtonItem = nil;

Я застыл в уме и использовал приведенное выше утверждение до того, как кнопка фактически появилась при создании: - (

8 голосов
/ 17 мая 2011

Было бы проще установить для свойства NavigationItem "hidesBackButton" значение yes:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UINavigationItem_Class/Reference/UINavigationItem.html#//apple_ref/occ/cl/UINavigationItem

0 голосов
/ 28 июня 2016

Чтобы удалить кнопку из панели навигации, просто назначьте тег для кнопки и напишите следующий код

[[self.navigationController.navigationBar viewWithTag:0106] removeFromSuperview];
0 голосов
/ 23 августа 2012

Другой вариант - отключить кнопку, пока вы не захотите, чтобы она заработала. Это будет видно, но затемнено.

self.navigationItem.leftBarButtonItem.enabled = NO;
...