【问题标题】:NSNotification handling in multiple UIViewContoller in SwiftSwift 中多个 UIViewContoller 中的 NSNotification 处理
【发布时间】:2015-09-10 08:50:25
【问题描述】:

我有几个UIViewController's 子类。每个班级都有网络调用,所有这些网络调用都在单独的班级中处理,每当我收到失败作为响应而不是对每个班级的交付失败响应时,我想通过发布来自我的网络班级的通知来显示警报。我的所有警报都会显示查看UIViewController 的扩展名。 有没有办法在我的扩展中为通知添加观察者,以便我可以从我的网络类发布通知,并使用此 UIViewController's 扩展显示警报,而不是在我的每个 UIViewController 中添加/删除观察者。

【问题讨论】:

  • 只是在发生故障时不发布通知并显示来自您的网络类的警报?
  • 我只是不想在我的模型/网络类中收到警报。

标签: ios objective-c swift uiviewcontroller nsnotificationcenter


【解决方案1】:

如果您只想显示警报,可以通过从网络类而不是通知中显示它来实现。

如果您有一些特定的功能要为每个 UIViewController 在失败的情况下创建一个父控制器(UIViewController 的子类)并从父类继承所有 UIViewController 并在父控制器中实现所有通知工作,即使您想要任何特定于控制器的功能,您也可以覆盖父类方法。

【讨论】:

    【解决方案2】:
    1. 如果您的意图只是显示错误警报,那么我建议将 AppDelegate 添加为通知侦听器,然后在通知触发时显示警报。
    2. 我个人会推荐用于网络的完成块 使代码可扩展且易于调试。
    3. 还有另一种创建 UIViewController 子类的方法 (例如CustomVC)并将其注册为空的通知 处理程序。然后创建所有视图控制器的子类 自定义VC。但是,您的每个视图控制器都必须 根据具体的VC实现handler并执行代码。

    【讨论】:

    • 我的类继承自 UITableViewController 和 UIViewController。我需要对我的许多类进行子类化,这需要更改代码我不喜欢在最后阶段这样做。我可以在现有 UIViewController 的扩展的帮助下做任何事情吗?
    • 我已经列出了我所知道的所有选项。如果您有不同类型的 VC,那么我会建议我上述建议中的 #1 和 #2。
    猜你喜欢
    • 2015-11-27
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多