如何在注册ForNotifications时从UIAlertcontroller获取UIAlertAction

时间:2016-10-01 19:56:53

标签: swift uilocalnotification uialertcontroller uialertaction

我想在视图控制器上进行一些切换,具体取决于用户是否允许/不注册通知。这个视图第一次加载和

appDelegate.registerForNotifications(UIApplication.sharedApplication())
在ViewDidLoad中调用

,显示AlertController,并且viewController按预期完成其布局,因此如果用户允许/不通知则缺少任何依赖性。

我知道我可以在应用程序启动后立即显示注册警报,但我想等待在此视图控制器中请求权限,因为它仅与此视图相关,而不是之前的其他视图。

在调用viewWillAppear之前有没有办法捕获UIAlertAction?

1 个答案:

答案 0 :(得分:2)

  

在调用viewWillAppear之前有没有办法捕获UIAlertAction?

不,也不应该。您不会在 viewDidLoadviewWillAppear之前执行之类的操作,等等。您在这些方法中的工作是根据需要进行响应(例如,通过初始化),然后尽可能快地完成。您不得以任何方式延迟视图控制器的外观。

相反,重新考虑您的架构。

视图控制器的视图将会出现。所以就这样吧!如果您担心,如果用户不允许注册,则不应启用按钮,然后从禁用按钮开始,只有在您知道(或在警报操作处理程序中学习)它之后启用它现在允许了。

或者,如果此视图控制器完全取决于允许注册的用户,请将注册移至应用的早期阶段,甚至不允许用户在没有注册的情况下来到这里!