【发布时间】:2012-01-04 16:26:05
【问题描述】:
我在 ClassB 中更改了 UIButton 的参数,但 UIButton 是在 ClassA 中声明的。 我如何从 ClassB 中看到?
简单地说:
_closeButton.alpha = 1;
_closeButton.enabled = TRUE;
感谢回复!!
好的,我试过这个: 在 ClassB.h
ClassA *_closeButtonController;
在 ClassB.m didLoad 中:
_closeButtonController = [[ClassA alloc] initWithNibName:@"ClassA" bundle:nil]; _closeButtonController._closeButton.enabled = TRUE; _closeButtonController._closeButton.alpha = 1;
我没有错误但不工作!
@Warkst 在 ClassA.h 我已经删除了 @property (nonatomic, retain) IBOutlet UIButton *_closeButton;并在 ClassA.m @synthesize _closeButton;处处使用下划线!
我已经用这段代码解决了: 在ClassA.m中
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showAndEnableCloseButton) name:@"EnableCloseButton" object:nil];
}
....
- (void)showAndEnableCloseButton
{
_closeButton.alpha = 1;
_closeButton.enabled = YES;
}
在 B 类.m 当 "TouchUpInside" UIButton 时,关闭 ClassB 的 View 并返回 ClassA 的视图,调用 NSNotificationCenter 的 ClassA _closeButton 的变化:
- (IBAction)close:(id)sender
{
[[NSNotificationCenter defaultCenter]postNotificationName:@"EnableCloseButton" object:self];
[self.view removeFromSuperview];
}
我希望我对某人有所帮助, 谢谢大家的回复! 美好的一天!
【问题讨论】:
-
好的,你是如何申报你的财产的?是不是这样:属性(...) UIButton * closeButton;然后在你的 .m 文件中合成 closeButton = _closebutton?还是到处都有下划线? IBOutlet 是如何调用的?
标签: objective-c class