【发布时间】:2016-02-29 14:55:35
【问题描述】:
我有什么
我有一个视图控制器 (SelectNameViewController),上面有一个 UITableView 和一个名称列表。当用户点击一个名字时,它会转到一个 ViewController (ResultController),它有一个容器视图,可以加载 3 个 ViewControllers (vc1,vc2, vc3) 允许用户滚动浏览。
在 ResultController 我有一个连接到 JSON 文件并根据所选名称下载信息的 alamofire 请求:
Alamofire.request(.GET, sendyURLSet, parameters: ["name": passedName, "api_key": api_key])
.responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
self.age = json["age"].stringValue
self.userInfo.setValue(self.age, forKey: "age")
}
case .Failure(let error):
print(error)
}
}
在 VC1 我的 viewDidAppear
中有这个if let a = userInfo.stringForKey("age") {
print("Age: \(a)")
} else {
print("nope")
}
问题
在从 Alamofire 请求加载内容后,我无法在 PageViewController 子视图上加载数据。
当用户单击一个名称并被带到 ResultController 时,3 个视图会加载到容器视图中。出现的第一个屏幕是 vc1。
但是,在控制台中我只是得到:
没有
如果我滑动到 vc2 然后回到 vc1 我会得到:
32 岁
在控制台中。
问题
谁能告诉我为什么 ViewController (vc1) 的第一个演示文稿中没有显示该值并告诉我如何解决它?
快把我逼疯了
【问题讨论】:
-
不要使用
NSUserDefaults在控制器之间传递数据。使用 segues、协议 - 委托模式或通知(按推荐优先级顺序) -
三个视图控制器在加载到容器视图时没有转场。
标签: ios swift uipageviewcontroller alamofire