可以在运行时更改 AppDelegate
Posted
技术标签:
【中文标题】可以在运行时更改 AppDelegate【英文标题】:Possible to change AppDelegate at runtime 【发布时间】:2015-02-11 21:08:20 【问题描述】:是否可以在运行时将 UIApplication.delegate 属性更改为另一个实现 UIApplicationDelegate 协议的类,以便从那时起在新类上调用 UIApplicationDelegate 函数?
【问题讨论】:
这样做有什么好处?你想对每个委托方法有几个不同的实现吗? 你尝试的时候发生了什么? 这个想法是让应用程序加载应用程序中定义的普通应用程序委托,但随后在某些时候(可能在启动后立即)能够切换到动态库中定义的新 AppDelegate框架(使用 xcode6/ios8 中新提供的支持)。我还没有访问框架,所以我没有尝试过,但很快就会! @stonedauwg 你能解决这个问题吗?我正在尝试类似的东西并在运行时切换 appDelegate 但它崩溃了。 【参考方案1】:您可以使用[UIApplication sharedApplication].delegate = instanceOfDifferentClass
非常简单地更改它。
【讨论】:
尚未尝试使用基于框架的 UIApplicationDelegate 类(如 orig 预期),但基本工作如 @AdamPro13 所说以上是关于可以在运行时更改 AppDelegate的主要内容,如果未能解决你的问题,请参考以下文章