删除导航按钮

时间:2011-02-28 10:33:49

标签: ios inheritance uibutton uinavigationitem

嘿,我写了一个继承了一些功能的类(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 个答案:

答案 0 :(得分:14)

我设法使用:

来解决它
self.navigationItem.leftBarButtonItem = nil;

我有一个心灵冻结,并且在按钮实际创建之前使用了上述语句: - (

答案 1 :(得分:8)

答案 2 :(得分:0)

要考虑的另一个选项是禁用按钮,直到您希望它起作用。它会显而易见,但会变暗。

self.navigationItem.leftBarButtonItem.enabled = NO;

答案 3 :(得分:-2)

要从导航栏中删除按钮,只需将标记分配给按钮并编写以下代码

[[self.navigationController.navigationBar viewWithTag:0106] removeFromSuperview];