不要忽略UIAlertView(没有子类化)

时间:2013-11-04 12:15:00

标签: ios passwords uialertview

我使用UIAlertView提示用户输入密码。如果密码正确,我希望警报视图正常消失;如果密码不正确,我希望保留警报视图(文本更改为“请再试一次。”)。如何更改默认行为,以便在按下按钮时视图不会消失?

我已尝试在Is it possible to NOT dismiss a UIAlertView建议的子类化方法,但dismissWithClickedButtonIndex未在我的子类中调用。阅读文档后,我发现不支持子类化UIAlertView,所以我想尝试另一种方法。

如果UIAlertView无法做到这一点,那么从头开始简单地进行密码查看是最佳选择吗?谢谢你的阅读。

3 个答案:

答案 0 :(得分:5)

由于这是一个非常古老的问题,但我得到了一个解决方案,但是如果其他开发人员在不久的将来需要发布的话。

在.h文件中实施协议方法

为了响应UIAlertView中的按钮点击,我们将使用 - alertView:clickedButtonAtIndex:协议方法

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

}
//Now below code will check if uitextfield value.
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
    NSString *inputText = [[alertView textFieldAtIndex:0] text];
    if( [inputText length] > 0)
    {
       //text field value is greater than zero ,then Done button will appear as blue,or else it will be blurred
        return YES;
    }
    else
    {
        return NO;
    }
}

答案 1 :(得分:3)

你可以设计一个类似于alertview的 UIView ,并可以调用其中的函数。删除UIView由您控制。

答案 2 :(得分:1)

单击按钮时,无法将警报保留在那里。

如果要在本地检查密码,或者稍后再显示其他警报,则可以通过委派方法alertViewShouldEnableFirstOtherButton:禁用“确定”按钮。第二个警报可以包含不同的信息,例如“密码不正确”而不是“输入密码”。