2016-02-14 81 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")!

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