【问题标题】:Possible to change AppDelegate at runtime可以在运行时更改 AppDelegate
【发布时间】:2015-02-11 21:08:20
【问题描述】:

是否可以在运行时将 UIApplication.delegate 属性更改为另一个实现 UIApplicationDelegate 协议的类,以便从那时起在新类上调用 UIApplicationDelegate 函数?

【问题讨论】:

  • 这样做有什么好处?你想对每个委托方法有几个不同的实现吗?
  • 你尝试的时候发生了什么?
  • 这个想法是让应用程序加载应用程序中定义的普通应用程序委托,但随后在某些时候(可能在启动后立即)能够切换到动态库中定义的新 AppDelegate框架(使用 xcode6/iOS8 中新提供的支持)。我还没有访问框架,所以我没有尝试过,但很快就会!
  • @stonedauwg 你能解决这个问题吗?我正在尝试类似的东西并在运行时切换 appDelegate 但它崩溃了。

标签: ios cocoa-touch uiapplicationdelegate


【解决方案1】:

您可以使用[UIApplication sharedApplication].delegate = instanceOfDifferentClass 非常简单地更改它。

【讨论】:

  • 尚未尝试使用基于框架的 UIApplicationDelegate 类(如 orig 预期),但基本工作如 @AdamPro13 所说
猜你喜欢
  • 1970-01-01
  • 2014-07-14
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
  • 2019-06-06
相关资源
最近更新 更多