视图控制器的全局实例是不是应该由应用程序委托拥有

Posted

技术标签:

【中文标题】视图控制器的全局实例是不是应该由应用程序委托拥有【英文标题】:Should a global instace of a viewcontroller be owned by app delegate视图控制器的全局实例是否应该由应用程序委托拥有 【发布时间】:2013-10-22 12:18:57 【问题描述】:

由于 ZBar 和 ios 7 的错误/问题,我们无法创建、销毁和重新创建用于扫描的视图控制器。所以我们需要保留一个永久的全局实例,以供多个不同的视图访问。

在当前解决方案中,扫描仪视图实例是应用程序委托的成员,并在应用程序启动时实例化。当需要显示时,[[UIApplication sharedApplication] delegate] 访问。

这是一个强制解决方案,但我仍然希望它尽可能下降。有没有更好的地方放置扫描仪视图控制器?

【问题讨论】:

【参考方案1】:

为您的扫描创建一个单例类

【讨论】:

【参考方案2】:

最好放在 .pch 文件中,

#define MY_APP_DELEGATE ((AppDelegate *)[UIApplication sharedApplication].delegate)

【讨论】:

这是一个让不正确的代码架构变得容易的肮脏技巧。

以上是关于视图控制器的全局实例是不是应该由应用程序委托拥有的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何正确执行此委托?

委托是不是具有每次应用程序来自后台时执行的功能

响应者链但不是委托属性将值从容器传递回视图控制器

如何从应用程序委托、情节提要、iOS6 获取我的视图控制器的实例

如何通过应用程序委托使用托管对象上下文实例化还原的视图控制器?

将代理更改为查看的任何屏幕