2017-07-07 42 views
0

我试图通过代码隐藏按钮,但每次我尝试隐藏它时程序都会崩溃。ios - 通过代码隐藏按钮时出现错误Objective-c

的错误,我得到:

'NSInvalidArgumentException', reason: '-[UIBarButtonItem setHidden:]: unrecognized selector sent to instance 0x14ef8f30' 

.h文件中的代码:

@property (strong) UIButton *takeAll; 

的.m代码:

@synthesize takeAll; 

// function 

    [self.takeAll setHidden:YES]; 
+0

添加'takeAll'按钮分配的代码 – Subramanian

+0

takeAll是UIBarButtonItem,你可能想将outlet连接到buttonItem中的按钮。 – teixeiras

+0

由于某种原因,当我将其声明为UIBarButtonItem时,我无法隐藏它,我该如何解决这个问题? – apex

回答

1

错误明显是说“您要设置的UIBarButtonItem

你隐藏的价值隐藏创建一个UIButton对象并将其分配为UIBarButtonItem。这是错误的。它假设是

self.takeAll = [UIButton buttonWithType:UIButtonTypeCustom] 

如果您需要UIBarButtonItem然后

@property (strong) UIBarButtonItem *takeAll; 

如果你想隐藏UIBarButtonItem

self.takeAll.enabled = false 
self.takeAll.tintColor = UIColor.clearColor 

启用栏按钮项

self.takeAll.enabled = true 
self.takeAll.tintColor = UIColor.blueColor 
+0

是的,抱歉没有考虑改变颜色来隐藏它。谢谢 – apex

1

的UIBarButtonItem没有setHidden:选择。您可能希望将按钮的色调设置为纯色并将其禁用,从而实质上提供相同的功能。

0

如果你的UIView的子类里面的UIBarButtonItem你可以用这个code`

[barButtonItem.customView setHidden:YES];

0

所示的碰撞是在的UIBarButtonItem。 在接口文件中,声明是针对UIButton的。也许你正试图将UIButton链接到UIBarButtonItem。