是否有可能使用ViewControllers的单身人士?

问题描述:

我试图用单例,但没有运气得到相同的实例是否有可能使用ViewControllers的单身人士?

我用这种方式...

class RCHDownloadTVCC: UITableViewController { 
private static let sharedInstance = RCHDownloadTVCC() 

static func defaultInstance() -> RCHDownloadTVCC { 
return sharedInstance 
} 
......} 

视图控制器不应该是单身人士。绝对不会。

视图控制器根据需要创建并在不再需要时销毁。单身人士是在第一次需要的时候创建的,并且永远不会被破坏。例如,使viewcontroller成为一个单例将停止viewDidLoad正常工作。除此之外,你永远不会知道相同的视图控制器将不需要两次。

+0

我正在做一个下载管理器,如果它不是一个好的方法来使用单身,那么我将如何添加一个新的下载到我的视图控制器没有访问它? – Raffi

+0

@Raffi在共享单个数据模型对象中执行下载。当你需要显示下载时 - 将它们组成新的视图控制器实例。学习MVC模式。 –

+0

好的!谢了哥们。 – Raffi

试试这个

class RCHDownloadTVCC: UITableViewController { 
static let sharedInstance = RCHDownloadTVCC() 
......} 

得到它在其他一些类别:

let rchdownloadSingletone = RCHDownloadTVCC.sharedInstance 

Upd: Ofc您需要确保您只通过sharedInstance属性初始化RCHDownloadTVCC类。任何其他方式来初始化它(例如,从故事板)将返回新的实例。我认为将视图控制器定义为单例是不好的样式编码

+0

我可以看到发生了什么现在我正在使用故事板,所以它肯定会是一个不同的实例,感谢提醒我 – Raffi