首页 > 其他 > 详细

通过代码让UIAlertView自动消失

时间:2014-03-14 23:26:22      阅读:465      评论:0      收藏:0      [点我收藏+]

最近写程序突然冒出个奇怪的需求就是让UIAlertView自动消失,不过实现方法很简单,使用以下代码:

// hides alert sheet or popup. use this method when you need to explicitly dismiss the alert.
// it does not need to be called if the user presses on a button
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;


一个小Demo代码:

@implementation ViewController {
    UIAlertView *alertView;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (IBAction)alert:(id)sender {
    alertView = [[UIAlertView alloc] initWithTitle:@"Hello"
                                           message:@"I will dismiss later..."
                                          delegate:nil
                                 cancelButtonTitle:@"Dismiss now" otherButtonTitles:nil, nil];
    
    [NSTimer scheduledTimerWithTimeInterval:3.0f
                                     target:self
                                   selector:@selector(dismissAlertView:)
                                   userInfo:nil
                                    repeats:NO];
    
    [alertView show];
}

- (void)dismissAlertView:(NSTimer*)timer {
    NSLog(@"Dismiss alert view");
    
    [alertView dismissWithClickedButtonIndex:0 animated:YES];
}

@end


点击视图中的按钮,运行alert方法:

bubuko.com,布布扣


保持程序前台运行3秒,对话框消失:

bubuko.com,布布扣


但是在这里遇到个问题,加入对话框启动后,立即点击Home键让程序进入后台,等待大概3秒钟,对话框消失后,再打开程序,界面如下:

bubuko.com,布布扣


可以看到按钮变成黑色了,但是界面依然可以响应用户的输入。

谷歌了一下,找到一篇文章,说这是iOS 7中UIAlertView的一个Bug。

原文链接:UIAlertView Bug on iOS 7

希望知道原因和解决方法的朋友告诉我一下。


通过代码让UIAlertView自动消失,布布扣,bubuko.com

通过代码让UIAlertView自动消失

原文:http://blog.csdn.net/u010962810/article/details/21245785

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!