gpt4 book ai didi

ios - 从另一个类访问 UIButton 不起作用?

转载 作者:行者123 更新时间:2023-11-29 04:54:51 25 4
gpt4 key购买 nike

我正在尝试从 CCLayerClass 访问 Play 类中的 UIButton。

问题是它不起作用!

这是我在 Play 类中声明它的方式:.h

IBOutlet UIButton *pauseButton;
@property(nonatomic, retain) IBOutlet UIButton *pauseButton;

.m

@synthesize pauseButton;

然后在释放中:

[pauseButton release];

当然,我也会在界面构建器中连接它。

然后在我的另一个类(class)(My CCLayer)类(class)中。我尝试这样做:

Play *play = [[[Play alloc] init] autorelease];
[play.pauseButton setHidden:YES];

问题是,它根本就没有隐藏按钮。这有什么原因吗?

谢谢!

编辑1:我的游戏.h

IBOutlet UIButton *pauseButton;
BOOL pauseButtonVisible;

@property(nonatomic, retain) IBOutlet UIButton *pauseButton;
@property(readwrite) BOOL pauseButtonVisible;

.m

@synthesize pauseButton;

- (void)setPauseButtonVisible: (BOOL) variableToSet {
pauseButtonVisible = variableToSet;
if(pauseButton)
[pauseButton setHidden: !pauseButtonVisible];
}
- (BOOL) pauseButtonVisible
{
return(pauseButtonVisible);
}

View 将出现:

[pauseButton setHidden: !pauseButtonVisible];

我还确保我在 Interface Builder 中连接了它

然后在 CCLayerClass 中我这样做:

Play *play = [[[Play alloc] init] autorelease];
if(play.pauseButton == NULL) {
NSLog( @"pause button is NULL");
}

但是 NSLog 被调用了!为什么我的暂停按钮为空?我只需要分配它,使其保持事件状态,这可能吗?

谢谢! play.pauseButtonVisible = YES;

最佳答案

好的。希望第三次是魅力(在那之后,我放弃了,因为我该去 sleep 了)。

在.h 文件中,我保留了新的pauseButtonVisible BOOL 属性。

@interface Play : UIViewController
{
BOOL pauseButtonVisible;
IBOutlet UIButton *pauseButton;
}

@property(nonatomic, retain) IBOutlet UIButton *pauseButton;
@property(readwrite) BOOL pauseButtonVisible;

@end

但是在 .m 文件中,我们做了一些不同的事情:

@interface Play

// here we are rolling our own setters and getters
// instead of @synthesizing...
- (void)setPauseButtonVisible: (BOOL) variableToSet
{
pauseButtonVisible = variableToSet;
if(pauseButton)
[pauseButton setHidden: !pauseButtonVisible];
}

- (BOOL) pauseButtonVisible
{
return(pauseButtonVisible);
}

- (void) viewWillAppear: (BOOL) animated
{
[pauseButton setHidden: !pauseButtonVisible];
[super viewWillAppear: animated];
}

Play *play = [[[Play alloc] init] autorelease]; // you should really be using initWithNibName, but anyways
play.pauseButtonVisible = YES;

现在,希望暂停按钮在代码运行时的适当时间可见或隐藏。

关于ios - 从另一个类访问 UIButton 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com