为什么不显示 WKAlertAction?

Why isn't WKAlertAction Showing?

我想使用 watchkit 扩展 (watchOS2) 显示像 UIAlertview 这样的警报视图, WKAlertAction 未在 willActivate 中显示。

但它会在点击按钮等触发后显示。

有没有错?

- (void)willActivate {

   [super willActivate];


   WKAlertAction *alertButtonAction =

   [WKAlertAction actionWithTitle:@"confirm"
                            style:WKAlertActionStyleDefault
                          handler:^{}];

  [self presentAlertControllerWithTitle:@"title"
                              message:@"message"
                       preferredStyle:WKAlertControllerStyleAlert
                              actions:@[alertButtonAction]];
}

环境:Xcode 7 个转基因种子

我遇到了完全相同的问题。

似乎 WatchOS 应用程序 无法在应用程序启动后立即显示警报

我将用于创建和显示警报的代码移至 dispatch_after(作为实验)并延迟执行 3 秒。

然后一切正常。

我在分页导航的 "second page" 控制器中也遇到了同样的问题。然后我注意到有时 willActivate 会被触发,即使 segue 中的页面不会显示(awakeWithContext 也会发生同样的事情,但这由 Apple 记录)。

所以我在 didActivate 中移动了警报的显示,现在可以使用了。我还尝试了 Maciej 的解决方案,同时将警报留在 willActivate 中:它出现了(我很想知道为什么)但当然,在我的情况下,在错误的页面控制器上(即第一个也是唯一一个真正的页面)已激活)。