2016-06-21 2 views
0

リモートデータがロードされた後、どのようにVCを表示できるのだろうか。私はtableViewを使用していませんが、通常のVCです。 viewDidLoadswift alamofire showcontrollerリモートデータがロードされた後

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を隠したり、ロードインジケータを表示したりする方法です。

また、これは2番目のビューです。私のアプリはtableViewで始まり、セルをクリックするとこのVCで終わります。したがって、セルがクリックされたときにデータをロードして、このVCに渡すこともできます。アクティビティインジケータを使用して

答えて

1

ここでは、優れていることが

まず、あなたのVCで​​を追加することを確認行う方法です

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が表示されるので、アプリケーションが反応しないと感じさせるでしょう。

関連する問題