我的iOS UIButton已从IB正确链接到 View Controller 中的IBOutlet,因为可以从代码中更改其标题。 IE:
[self.myButton setTitle:@"new title" forState:UIControlStateNormal]; //works
然而,
[self.myButton setHidden:YES]; //doesn't work
//or
self.myButton.hidden = YES; //doesn't work
这是怎么回事?如何使myButton消失?
更新:一些其他信息
这是与我的UIButton相关的代码:
在我的.h文件中
IBOutlet UIButton *myButton;
-(IBAction)pushedMyButton:(id)sender;
@property (nonatomic,retain) UIButton *myButton;
在我的.m文件中
@synthesize myButton;
- (void)pushedMyButton:(id)sender{
self.myButton.hidden = YES;
}
- (void)dealloc{
[self.myButton release];
}
最佳答案
好的,我找到了一种可行的解决方法,但是我仍然不知道为什么最初的原始代码无法正常工作。我使用了Grand Central Dispatch在主队列上调度了一个包含hide调用的块,如下所示:
dispatch_async(dispatch_get_main_queue(), ^{
self.myButton.hidden = YES; //works
});
有趣的。但是,我的IBOutlet中的初始代码都没有包装在GCD块中。有任何想法吗?
关于iphone - 无法以编程方式隐藏用IB创建的UIButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4498400/