2016-02-14 85 views
0

我正在創建一個iOS應用程序。當我點擊我的「登錄」按鈕時,服務器通過將JSON發送迴應用程序來響應。我知道信息正在被髮回,因爲我可以打印來自LoginVC的信息。將JSON對象傳遞給TabBarViewController

當登錄成功時,我想將服務器響應「傳入應用程序」。截至目前我使用的是以下兩行「移動到應用程序」:

let TabBarViewControllerObejct = self.storyboard?.instantiateViewControllerWithIdentifier("TabBarViewController") 
self.navigationController?.pushViewController(TabBarViewControllerObejct!, animated: true) 

我想這應可在標籤欄控制器的所有意見,所以我試圖創建類的TabBarVC並添加一個屬性,但在響應過程中爲其分配值時,它會失敗並找不到該屬性。

我也嘗試將navController推入TabBarVC中的第一個視圖,但後來我失去了選項卡欄。

我試着用上面的語句實例化TBVC,然後將該類的屬性設置爲響應字符串。我無法正確分配,因此我無法根據需要從內部視圖中訪問它。

我做了一個名爲TabBarController的Swift文件,它的子類爲UITabBarController,我指出XIB使用該類。我在該類中創建了一個響應變量,並試圖在上述語句之間設置該屬性。 TabBarViewControllerObject.responseString = value哪些沒有工作,因爲我實例化了UIViewController,而不是UITabBarController。我試圖將第一條語句改爲包含as! TabBarController,但後來的pushViewController函數用於不匹配的類型。

+0

你是如何將信息分配給'TabBarViewController'的?你是如何嘗試檢索「TabBarViewController」中的數據的? –

+0

@KyleRedfearn編輯了一個答案 – Neurax

+0

請告訴我們代碼 –

回答

0

經過大量研究後,我發現我試圖從一個視圖泄漏到另一個視圖,而不安全的內存。最終的決定是改變策略以使用某種形式的存儲來放置響應字符串,然後從另一個視圖內的存儲中抓取。

我提出了一些關於NSUserDefaults的信息,這對我的情況來說是完美無缺的。

要保存的東西進入商店這樣:

import Foundation使用對象NSUserDefaults的

var defaults = NSUserDefaults.standardUserDefaults()給init默認

self.defaults.setObject(VALUE_TO_STORE, forKey: "KEY_NAME")存儲與關鍵KEY_NAME和值VALUE_TO_STORE的字符串。

然後在其他視圖初始化的默認值以同樣的方式,當你希望檢索值使用 defaults.stringForKey("KEY_NAME")!

希望這有助於任何人,卡住了我做的方式。