Swift 如何从注册通知时显示的UIAlertcontroller获取UIAlertAction

Swift 如何从注册通知时显示的UIAlertcontroller获取UIAlertAction,swift,uilocalnotification,uialertcontroller,uialertaction,Swift,Uilocalnotification,Uialertcontroller,Uialertaction,我想根据用户是否允许/不注册通知,在视图控制器上进行一些切换。此视图第一次加载和 appDelegate.registerForNotifications(UIApplication.sharedApplication()) 在ViewDidLoad中调用,此时会显示AlertController,并且viewController会按预期完成其布局,因此缺少对用户是否允许/不允许通知的任何依赖关系 我知道我可以在应用程序启动后立即显示注册警报,但我想等待在此视图控制器中请求权限,因为它仅与此视

我想根据用户是否允许/不注册通知,在视图控制器上进行一些切换。此视图第一次加载和

appDelegate.registerForNotifications(UIApplication.sharedApplication())
在ViewDidLoad中调用,此时会显示AlertController,并且viewController会按预期完成其布局,因此缺少对用户是否允许/不允许通知的任何依赖关系

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

在调用viewWillAppear之前,是否有任何方法捕获UIAlertAction

在调用viewWillAppear之前,是否有任何方法捕获UIAlertAction

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

相反,重新思考您的架构

将显示视图控制器的视图。那就随它去吧!如果您担心,例如,如果用户不允许注册,则不应启用按钮,那么从禁用按钮开始,只有在您知道(或在警报操作的处理程序中了解)按钮现在是允许的之后才启用它

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

在调用viewWillAppear之前,是否有任何方法捕获UIAlertAction

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

相反,重新思考您的架构

将显示视图控制器的视图。那就随它去吧!如果您担心,例如,如果用户不允许注册,则不应启用按钮,那么从禁用按钮开始,只有在您知道(或在警报操作的处理程序中了解)按钮现在是允许的之后才启用它


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

我不知道你想做什么,但我认为马特回答的最后一行是关键。如果你想创建一个登录页面,我建议你看看,不确定你想做什么,但我认为马特回答的最后一行是关键。如果您试图创建登录页面,我建议您查看