Ios Don';t关闭UIAlertView(无子类化)
我正在使用Ios Don';t关闭UIAlertView(无子类化),ios,passwords,uialertview,Ios,Passwords,Uialertview,我正在使用UIAlertView提示用户输入密码。如果密码正确,我希望警报视图正常消失;如果密码不正确,我希望警报视图保持不变(文本更改为“请重试”)。如何更改默认行为,以便按下按钮时视图不会消失 我尝试了在中建议的子类化方法,但是在我的子类中没有调用dismissWithClickedButtonIndex。阅读文档后,我发现不支持子类化UIAlertView,因此我想尝试另一种方法 如果这在UIAlertView中无法实现,那么从头开始创建密码视图是最好的选择吗?感谢阅读。您可以设计一个类似
UIAlertView
提示用户输入密码。如果密码正确,我希望警报视图正常消失;如果密码不正确,我希望警报视图保持不变(文本更改为“请重试”)。如何更改默认行为,以便按下按钮时视图不会消失
我尝试了在中建议的子类化方法,但是在我的子类中没有调用dismissWithClickedButtonIndex
。阅读文档后,我发现不支持子类化UIAlertView
,因此我想尝试另一种方法
如果这在
UIAlertView
中无法实现,那么从头开始创建密码视图是最好的选择吗?感谢阅读。您可以设计一个类似于alertview的UIView,并可以校准其中的功能。删除UIView由您控制 单击按钮后,不可能将警报留在那里
如果您在本地检查密码,您可以通过委托方法禁用“确定”按钮
警报视图shouldenablefirstotherbutton:
,或者稍后再显示另一个警报。第二个警报可能包含不同的信息,例如“密码不正确”而不是“输入密码”。因为这是一个非常古老的问题,但我得到了一个解决方案,并考虑在不久的将来发布任何其他开发人员需要的信息
在.h文件中实现协议方法
为了响应UIAlertView中的按钮点击,我们将使用–alertView:ClickedButtonIndex:protocol方法
- (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;
}
}
简单的解决方案是,允许第一个
UIAlertView
关闭并显示另一个具有相同委托的视图。这应该是可行的,但是你可能会得到一个很短的时间,没有UIAlertView
。我最终在短期内使用了Nicholas Smith的解决方案,但这似乎是产生我所追求的密码框行为的最佳选择。谢谢,Shob-Z!这是目前为止最好的答案。@Gannicus谢谢:)