2017-07-07 47 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。