我有一个带有按钮子视图 StartScene.h 的主视图:
@class PlayScene
@interface StartScene : UIView <UITextFieldDelegate> {
PlayScene* tView;
UIButton *Ok;
}
StartScene.m 中的某处:
Ok = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[Ok setFrame:CGRectMake(100, 190, 65, 30)];
[Ok setTitle:(NSString *)@"OK" forState:(UIControlState)UIControlStateNormal];
[Ok addTarget:self action:@selector(gameOverDidLoad) forControlEvents:UIControlEventTouchDown];
[self addSubview:Ok];
Ok.hidden=YES;
Ok.enabled=NO;
tView = [[PlayScene alloc]initWithFrame:CGRectMake(0, 0, 320, 520)];
tView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backGround.jpg"]];
[self addSubview:tView];
和子视图:PlayScene.h:
#import "StartScene.h"
@interface PlayScene : StartScene {
}
PlayScene.m:
- (void)ooneFingerTwoTaps {
[NSThread detachNewThreadSelector:@selector(oneFingerTwoTaps) toTarget:self withObject:nil];
}
被调用并且它的方法是
- (void)oneFingerTwoTaps
{
// some code
if (self.GameState==GameLost) {
[super checkScore:xScore];
Ok.hidden=NO;
Ok.enabled=YES;
[[NSThread currentThread] cancel];
}
}
}
因此,当 PlayScene 中发生某些事情时,需要出现 Ok 按钮。
我试过了
Ok.hidden=NO;
Ok.enabled=YES;
但它不起作用。我想,由于子视图只能看到一个尚未初始化的 UIButton 变量。
所以我在这里有两个问题:
1)我可以使用 self.Ok 或 super.Ok 调用 Ok 变量。我认为 super.Ok 完全可以工作,但我不知道,也找不到正确的语法。它是什么?
2)问题可以通过其他方式解决吗?