2012-07-30 134 views
1

典型地隱藏UIButton並不難,但我將它設置爲IBAction而不是IBOutlet。這是必要的,因爲當按下按鈕時,文本彈出,但我希望按鈕消失。解決辦法是什麼?隱藏UIButton作爲IBAction

+0

當你說「文本彈出」你的意思是一個警報(UIAlertView)? – Daniel 2012-07-30 19:03:17

+0

我的意思是,當按下按鈕時,我有一個設置爲特定消息的標籤 – 2012-07-30 19:04:40

回答

0

你可能宣告你的IBAction爲這樣的:

- (IBAction)myButtonAction; 

它應該是:

- (IBAction)myButtonAction:(id)sender; 

因爲這樣你可以在方法

- (IBAction)myButtonAction:(id)sender 
{ 
    if([sender respondsToSelector:@selector(setHidden:)]) 
     [sender setHidden:YES]; 
} 

所有IBActions可以支持接收做好自己發件人作爲函數。但是,如果一個不同的UI元素調用該函數,它也將被隱藏。此外,使用上述方法,您將無法取消隱藏按鈕,如果您需要這樣做,則最好使用IBOutlet - 在5.0以上版本中,您可以使用不保留的weak關鍵字一個引用,如果該對象被銷燬,它會自動刪除,在4.x中,你只需要記住將它設置爲無viewDidUnload。

+0

非常感謝!現在我還有一個問題:在按下按鈕之前,我有一些我想要隱藏的按鈕,但按下按鈕之後,我希望其他按鈕變爲可見。我相信我可以處理第二部分,但我不確定如何讓最初設置爲隱藏的按鈕。 – 2012-07-30 19:07:58

+0

您應該仔細研究爲此創建屬性,針對您要處理的每個UILabel的IBOutlets。你可以使用一個BOOL iVar aa標誌,這樣你就知道你的應用程序處於什麼狀態。並且使用屬性來更新它們的值/隱藏/顯示相應的內容 – Daniel 2012-07-30 19:09:31

+0

嗯,我只有一個UILabel,我沒有問題,它是隻是我不確定如何在屏幕第一次加載時隱藏某些按鈕 – 2012-07-30 19:15:37