UIAlertController在iOS 10中自动解散

时间:2016-10-24 02:34:26

标签: objective-c ios10 appdelegate uialertcontroller

我的UIAlertController中有一个AppDelegate,并在收到通知时将其显示在rootViewController。但是当警报视图弹出时,它很快就会自动解散,而不是等待" Ok"按钮...这是AppDelegate.m中的代码。任何的想法?谢谢!

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
    [self showNotification:"Success message here"];
}

- (void)showNotification:(NSString *)text {
    UIAlertController* avc = [UIAlertController alertControllerWithTitle:@"Success" message:text
                                                                      preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *ok = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleCancel handler:nil];
    [avc addAction:ok];
    [self.window.rootViewController presentViewController:avc animated:true completion:nil];
}

编辑:我有另一个视图控制器;称之为X. X' viewDidLoad函数有一个计时器在X解除自身之前倒计时并呈现另一个视图控制器。我注意到这里有一个有趣的计时问题:当通知进展缓慢以至于在X计时器启动后出现UIAlertController并且已经呈现了另一个视图控制器时,alertController不会解除自身。如果相反的情况发生 - 通知很快就会使得UIAlertController出现在X解除自身之前,那么当计时器启动时整个AlertController将被刷新(这是有意义的,我猜......)。我怎样才能防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

您可以使用执行选择器方法,如下所示:

@foreach($posts as $post)

     @if($post->like != null)
     <div class = "like">
         @foreach($post->like)
             // render the view here...
         @endforeach
     </div>
     @endif

     @if($post->dislike != null)
     <div class = "dislikes">
         @foreach($post->dislike)
             // render the view here...
         @endforeach
     </div>
     @endif

@endforeach