【问题标题】:swift alamofire show viewcontroller after remote data has loaded加载远程数据后 swift alamofire 显示视图控制器
【发布时间】: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。

【问题讨论】:

    标签: ios json xcode swift alamofire


    【解决方案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 才会显示。

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 2017-10-29
      相关资源
      最近更新 更多