用户关闭警报后仅显示下一个屏幕

时间:2014-03-27 04:24:06

标签: ios objective-c xcode

我正在制作一个失败的屏幕,我想让用户在显示统计数据屏幕之前查看他们的游戏。我决定使用警报向用户显示当前屏幕。在他们点击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
}

3 个答案:

答案 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