2012-07-30 58 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