加载远程数据后 swift alamofire 显示视图控制器
Posted
技术标签:
【中文标题】加载远程数据后 swift alamofire 显示视图控制器【英文标题】:swift alamofire show viewcontroller after remote data has loaded 【发布时间】:2016-06-21 21:39:55 【问题描述】:我想知道如何在远程数据加载后显示 VC。我使用的不是tableView,而是普通的VC。
我的代码如下所示:
viewDidLoad
:
override func viewDidLoad()
super.viewDidLoad()
loadItemData(id)
func loadItemData(aId: Int)
Service.getItem(aId) (JSON) -> () in
self.iData = JSON
self.configureData(self.iData)
func configureData(iData: JSON)
if let type = iData["item_type"].int
if let == 1
someButton.hidden = true
if let title = iData["item_title"].string
titleLabel.text = title
会发生什么情况是,我的 VC 首先加载可见按钮和包含来自情节提要的“虚拟文本”的文本标签,然后当数据加载后,按钮将隐藏并且文本标签将更改。
所以我现在的问题是如何在数据加载之前隐藏我的 VC 或显示一些加载指示器。
同样值得一提的是,这是第二种观点。我的应用程序从 tableView 开始,当你点击一个单元格时,你最终会进入这个 VC。所以我也可以在单击单元格时加载数据,然后将其传递给这个 VC。
【问题讨论】:
【参考方案1】:使用活动指示器更好,这里是如何做到的
首先确保在您的 VC 中添加 Activity Indicator
override func viewDidLoad()
super.viewDidLoad()
self.myActivityIndicator.startAnimating()
loadItemData(id)
func loadItemData(aId: Int)
Service.getItem(aId) (JSON) -> () in
self.iData = JSON
self.configureData(self.iData)
self.myActivityIndicator.stopAnimating()
与其尝试隐藏 VC(尝试加载数据并传递它),它会让应用程序感觉没有响应,因为您必须等待数据加载,然后 VC 才会显示。
【讨论】:
以上是关于加载远程数据后 swift alamofire 显示视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
使用 alamofire + swift 获取动态加载的 html
NSMutableArray true 转换为 json 输出并在 Swift 3 中使用 Alamofire 将其发布到远程
Swift 2.0 + Alamofire 3.0 - 缓慢加载 JSON
Swift 2 - 如何从 Alamofire.responseJSON 获取数据