在我的UIAlertView中,我想在按下“确定”按钮时打开另一个UIView。
但问题是,即使在显示UIView之后,警报仍保留在屏幕上,一旦消失,UIView似乎被禁用。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add details" message:@" Do you like to set the details now?" delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No",nil];
[alert show];
[alert release];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{ // the user clicked one of the OK/Cancel buttons
NSString *title = [alertView title];
if([title isEqualToString:@"Add details"])
{
.......
任何帮助将不胜感激!
答案 0 :(得分:0)
为什么不检查委托方法中按下的按钮而不是标题? 也就是说,
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0){
// User pressed "YES"
}else{
// User pressed "NO"
}
}
取消按钮的索引为0,其他按钮的索引增加。为了检测这是什么警报,您还应该给它一个标签。希望这会有所帮助。
答案 1 :(得分:0)
可能是因为在实际解除警报视图之前添加了新视图。因此,最好使用 didDismissWithButtonIndex 委托来显示现有警报视图的按钮点击事件的新视图,而不是 clickedButtonAtIndex
- (void) alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
//Add the view
}
而不是
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//Add the view
}