在我工作的應用程序中,我需要可用於所有UIView
的數組變量。目前,當數組在視圖中更改時,它將存儲在數據庫中,並且當我需要上一視圖中數組的更新版本時,我使用viewWillAppear
方法並從數據庫中檢索更新的數組。在用segue轉到另一個視圖時,我使用prepareForSegue
的傳遞數據,但如果使用後退按鈕,或者只是通過標籤欄更改屏幕,我使用viewWillAppear
和查詢。在所有視圖中使用數組變量
有什麼辦法,當數組在視圖中創建時,其中的數據將在所有視圖中可訪問?
在我工作的應用程序中,我需要可用於所有UIView
的數組變量。目前,當數組在視圖中更改時,它將存儲在數據庫中,並且當我需要上一視圖中數組的更新版本時,我使用viewWillAppear
方法並從數據庫中檢索更新的數組。在用segue轉到另一個視圖時,我使用prepareForSegue
的傳遞數據,但如果使用後退按鈕,或者只是通過標籤欄更改屏幕,我使用viewWillAppear
和查詢。在所有視圖中使用數組變量
有什麼辦法,當數組在視圖中創建時,其中的數據將在所有視圖中可訪問?
辛格爾頓基本上是一個全局變量,你可以在任何視圖中使用它們,但一些開發商遇到了一些錯誤和困難,用它在你自己的風險,我建議這個方法時,你肯定那你會很多地使用這些數據(STILL RISKY),,但是這個方法就像數據處理的女神 :)。
創建NSObject
子並調用它DataManager.swift
(我把它叫做數據管理導致它處理數據。)如下:
進口的UIKit
class DataManager: NSObject {
//Store Data Globally
static var someData: NSArray! //This Boolean, you can choose whatever you want.
}
的static
是什麼讓您的數據活。
現在您可以像處理任何類型的數據那樣從任何地方存儲和接收someData
。
//Store
DataManager.someData = []
//Receive
print(DataManager.someData)
正如我在我的評論中所說的,單身人士通常因爲無數的原因而被壓抑。然而,對這個話題很多爭論:
What is so bad about singletons?
說了這麼多,我知道做一個全局變量可用於會話的最佳方式是通過創建一個單例。
struct myArray {
static var data: [Int] = []
}
您可以設置此單高達獲取使用CoreData的記錄,保存當前工作版本,以便快速訪問一個靜態變量。
備註:我真的很好奇看到其他一些方法。
當然你也可以使用一個單獨但是這通常令人難以接受的。(見鏈接)我會很感興趣,看看都給出什麼其他選擇,你不希望保留保存/提取記錄。 (鏈接:http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons) –
請不要使用單身人士或任何其他全球數據。將數據從視圖控制器傳遞到視圖控制器。從那裏到視圖。創建一個知道如何處理數據的通用UIView基類。這裏我張貼代碼來展示如何通過子類化輕鬆完成將vc傳遞給vc的過程。子類視圖不包括在內。 http://stackoverflow.com/questions/32979924/passing-data-from-the-firstviewcontroller-to-the-lastviewcontroller/32980270#32980270 – vikingosegundo