在班上
@interface StartScene : UIView
我称之为一个实例
@interface HelpView : UIView {
GameOverMenu* gorm;
PlayScene* tView;
}
并使用addSubview
. 我这里也有大量代码
-(void) removemyself {
[tView removeFromSuperview];
[gorm removeFromSuperview];
[self removeFromSuperview];
}
-(void)restartPlay {
[tView removeFromSuperview];
[self playSceneDidLoad];
}
-(void)gameOverDidLoad {
[tView removeFromSuperview];
gorm = [[GameOverMenu alloc]initWithFrame:CGRectMake(0, 0, 320, 520)];
gorm.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backGround.jpg"]];
[gorm checkScore:Scores];
[self addSubview:gorm];
}
-(void)playSceneDidLoad {
[gorm removeFromSuperview];
tView = [[PlayScene alloc]initWithFrame:CGRectMake(0, 0, 320, 520)];
tView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backGround.jpg"]];
[self addSubview:tView];
[tView ooneFingerTwoTaps];
}
和两个子类HelpView
:
@interface PlayScene : HelpView
@interface GameOverMenu : HelpView <UITextFieldDelegate>
当StartScene
我按下按钮时,会创建一个实例并调用HelpView
init 方法。playSceneDidLoad
里面PlayScene
有调用restartPlay
方法的重启按钮。游戏失败时gameOverDidLoad
调用方法。
并且在两者PlayScene
中GameOverMenu
都有退出按钮,它调用removemyself
方法,应该将播放器返回到主菜单。
乍一看它应该可以正常工作,但是如果我多次按下重新启动按钮而不是尝试按下退出,则会发生视图未从超级视图中删除,现在只需按下退出按钮即可将它们一一删除。我们停在 HelpView 上,它并没有自行删除(即使我尝试在[super removeFromSuperview];
某个地方打电话。
我需要及时正确删除视图并在按下退出时进入主菜单(StartScene)。我不认为很多观点相互覆盖是一个好的变体。问题是什么?