我正在制作一个失败的屏幕,我想让用户在显示统计数据屏幕之前查看他们的游戏。我决定使用警报向用户显示当前屏幕。在他们点击OK之后,他们应该被带到统计屏幕。
问题是,stat屏幕会在警报的同时弹出。如何在用户关闭警报后确保统计信息屏幕打开?
if ([self.model userHasLost]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry!" message:@"You lost..." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[self _showGameEndScreenWitnWin:NO]; //Stats screen should open after alert is closed
}
答案 0 :(得分:2)
您需要使用UIAlertView
的委托方法,还需要设置delegate
的{{1}},
以下是UIAlertView = self
方法
delegate
在此方法中检查- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
,它会为您提供buttonIndex
并管理点击按钮。
有关详细信息,请阅读此UIAlertView Delegates。
答案 1 :(得分:1)
您需要设置警报视图委托。在此示例中,self将符合UIAlertViewDelegate协议。
if ([self.model userHasLost]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry!" message:@"You lost..." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
alert.delegate = self;
[alert show];
}
然后,您可以在取消警报视图时收听委托方法:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
[self _showGameEndScreenWitnWin:NO]; //Stats screen should open after alert is closed
}
答案 2 :(得分:1)
对于这种情况需要使用委托方法, 有关简单示例,请参阅此处:http://www.idev101.com/code/User_Interface/UIAlertView.html