2

我正在尝试在另一个内部显示警报视图,但遇到了问题。它短暂地出现......但在一秒钟后自行消失。

这是我的第一个警报视图委托中的代码:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

    if(buttonIndex == 1)
    {
        Room *room = [[Room alloc] init];
        room = [roomList objectAtIndex:alertView.tag];
        currentRoom = room;
        if([[alertView textFieldAtIndex:0].text isEqualToString:room.password]){
            [self performSegueWithIdentifier:@"joinRoom" sender:self];
        }
        else{
            alertMessage *message = [[alertMessage alloc] initWithTitle:@"Error"
                                                            message:@"Invalid password"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [message setStyle];
            [message show];
        }             
    }
}
4

1 回答 1

3

使用alertView:didDismissWithButtonIndex:委托方法而不是alertView:clickedButtonAtIndex:委托方法。警报消失后调用前者。当您想根据第一个警报视图的点击按钮显示第二个时,这更有意义。

您可能希望在第二个警报视图上有两个按钮。一个取消,一个“重试”。点击“重试”将再次显示密码警报。

于 2013-08-30T02:51:59.917 回答