Dav*_*idD 15 iphone objective-c interface-builder ios
我的iOS UIButton在我的视图控制器中从IB正确链接到IBOutlet,因为我可以从我的代码中更改其标题.即:
[self.myButton setTitle:@"new title" forState:UIControlStateNormal]; //works
Run Code Online (Sandbox Code Playgroud)
然而,
[self.myButton setHidden:YES]; //doesn't work
//or
self.myButton.hidden = YES; //doesn't work
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?怎么能让myButton消失?
更新:一些额外的信息
这是与我的UIButton相关的代码:
在我的.h文件中
IBOutlet UIButton *myButton;
-(IBAction)pushedMyButton:(id)sender;
@property (nonatomic,retain) UIButton *myButton;
Run Code Online (Sandbox Code Playgroud)
在我的.m文件中
@synthesize myButton;
- (void)pushedMyButton:(id)sender{
self.myButton.hidden = YES;
}
- (void)dealloc{
[self.myButton release];
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*idD 20
好的,我找到了一个有效的解决方法,但我仍然不知道为什么我的原始代码不起作用.我使用Grand Central Dispatch在主队列上调度包含隐藏调用的块,如下所示:
dispatch_async(dispatch_get_main_queue(), ^{
self.myButton.hidden = YES; //works
});
Run Code Online (Sandbox Code Playgroud)
有趣.我的IBOutlet中的初始代码都没有包含在GCD块中.有任何想法吗?
归档时间: |
|
查看次数: |
16020 次 |
最近记录: |