将JSON对象传递给TabBarViewController

时间:2016-02-14 21:04:07

标签: ios json swift

我正致力于创建iOS应用程序。当我点击我的"登录"按钮,服务器通过将JSON发送回应用程序来响应。我知道信息正在被发回,因为我可以从LoginVC打印信息。

登录成功后,我想将服务器响应"传递到应用程序"。截至目前,我正在使用以下两行来进入应用程序":

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

我希望Tab Bar Controller中的所有视图都可以使用该响应,因此我尝试为TabBarVC创建一个类并添加一个属性,但是在响应期间为它赋值时,它会失败并且不能找到该物业。

我还尝试将navController推送到TabBarVC中的第一个视图,但后来我丢失了标签栏。

我尝试使用上面的语句来实例化TBVC,然后将该类的属性设置为响应字符串。我无法正确分配,因此无法根据需要从内部视图中访问它。

我创建了一个名为TabBarController的Swift文件,它是UITabBarController的子类,我指出XIB使用该类。我在该类中创建了一个响应变量,并尝试在上述语句之间设置该属性。 由于我实例化了UIViewController而不是UITabBarController,因此TabBarViewControllerObject.responseString = value没有用。我尝试将第一个语句更改为包含as! TabBarController,然后更改不匹配类型的pushViewController函数。

1 个答案:

答案 0 :(得分:0)

经过大量研究后,很明显我试图从一种视图到另一种视图中泄漏相当不安全的内存。最终的决定是改变策略以使用某种形式的存储来放置响应字符串,然后从另一个视图中从该存储中获取。

我在NSUserDefaults上发现了一些信息,这些信息(对于我的情况)完美无缺。

以这种方式将某些东西保存到商店中:

import Foundation使用NSUserDefaults对象

var defaults = NSUserDefaults.standardUserDefaults()初始化默认值

self.defaults.setObject(VALUE_TO_STORE, forKey: "KEY_NAME")存储一个包含KEY_NAME密钥且值为VALUE_TO_STORE的字符串。

然后在另一个视图中以相同的方式初始化默认值,并且当您想要检索该值时使用 defaults.stringForKey("KEY_NAME")!

希望这可以帮助任何一个像我一样陷入困境的人。