【问题标题】:UIAlertController is automatically dismissingUIAlertController 自动关闭
【发布时间】:2017-08-04 12:03:52
【问题描述】:

我的UIAlertController 自动消失了,为什么?

-(void)marge_carburant{
    NSString *quantite_carburant_reglementaire = [[NSUserDefaults standardUserDefaults] stringForKey:@"quantite_carburant_reglementaire"];


    // PRISE EN CHARGE DU REGLAGE DE LA MARGE CARBU
    if ([quantite_carburant_reglementaire isEqual: @"2"]){
        quantite_reglementaire = 21;
    }
    if ([quantite_carburant_reglementaire isEqual: @"1"]){
        quantite_reglementaire = 0;
   UIAlertController *alert_carbu_reglementaire = [UIAlertController
                                  alertControllerWithTitle:@"ATTENTION"
                                  message:@"Le résultat ne prend pas en compte la quantité réglementaire"
                                  preferredStyle:UIAlertControllerStyleAlert];



  [self presentViewController:alert_carbu_reglementaire animated:YES completion:nil];
  [self performSelector:@selector(dismissTheAlert) withObject:nil afterDelay:3.0];
    }
}
- (void) dismissTheAlert {
     [self dismissViewControllerAnimated:YES completion:^{}];
}

【问题讨论】:

  • 我认为您想在单击按钮时关闭警报,但在 3 秒后。对吗?
  • 我想创建一个没有按钮的警报,这个警报只会在屏幕上出现 3 秒
  • 因为......你......解雇......它......之后...... 3......秒......也许......?

标签: objective-c xcode


【解决方案1】:

试试下面的一个。

3.0 * NSEC_PER_SEC 是以秒为单位的延迟

[self presentViewController:alert_carbu_reglementaire animated:YES completion:nil];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[alert_carbu_reglementaire dismissViewControllerAnimated:YES completion:^{
    // do something ?
}];
});

您可以在调用marge_carburant 函数时添加延迟,以防止从视图调用确实加载时崩溃。

【讨论】:

  • 您的代码有效,消息出现 3 秒,但 3 秒后出现错误:线程 1:信号 SIGABRT。我有义务将代码放入://做某事吗?
  • @pilou 不,你不需要在//做某事中放任何代码。我检查了代码,它工作正常。从控制台添加 SIGABRT 错误。它是由其他原因引起的。
  • 警告:尝试在 上显示 已经显示(空)
  • @pilou 实际上,您正在尝试在您的视图控制器仍未加载时呈现警报控制器。尝试从 viewDidAppear 方法而不是 viewDidLoad 或 loadView 调用“-(void)marge_carburant”函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
相关资源
最近更新 更多