注册通知时如何从存在的 UIAlertcontroller 获取 UIAlertAction
Posted
技术标签:
【中文标题】注册通知时如何从存在的 UIAlertcontroller 获取 UIAlertAction【英文标题】:How to get a UIAlertAction from UIAlertcontroller presented when registeringForNotifications 【发布时间】:2017-02-10 04:13:03 【问题描述】:我想根据用户是否允许/不注册通知来对视图控制器进行一些切换。这个视图第一次加载和
appDelegate.registerForNotifications(UIApplication.sharedApplication())
在 ViewDidLoad 中调用,显示 AlertController 并且 viewController 按预期完成其布局,因此缺少对用户是否允许/不允许通知的任何依赖。
我知道我可以在应用程序启动后立即显示注册警报,但我想等待在此视图控制器中请求许可,因为它仅与此视图相关,而不与之前的其他视图相关。
在调用 viewWillAppear 之前有什么方法可以捕获 UIAlertAction 吗?
【问题讨论】:
不确定你想做什么,但我认为马特回答的最后一行是关键。如果您正在尝试创建登录页面,我建议您查看here 【参考方案1】:在调用 viewWillAppear 之前有什么方法可以捕获 UIAlertAction 吗?
没有,也不应该有。 在viewDidLoad
、viewWillAppear
等之前,您不会做任何事情。您在这些方法中的工作是根据需要做出响应(例如,通过进行初始化),然后尽可能快地让开。您不得以任何方式延迟视图控制器的出现。
相反,重新考虑您的架构。
视图控制器的视图将会出现。所以就让它吧!如果您担心,例如,如果用户不允许注册,则不应启用按钮,则从禁用按钮开始,仅在您知道(或在警报操作的处理程序中了解)现在允许后启用它。
或者,如果此视图控制器完全依赖于允许注册的用户,请将注册移到应用程序的早期阶段,甚至不允许用户在没有它的情况下来到这里!
【讨论】:
以上是关于注册通知时如何从存在的 UIAlertcontroller 获取 UIAlertAction的主要内容,如果未能解决你的问题,请参考以下文章