2016-05-18 4 views
0

多くの人がこの問題を抱えていることは知っていますが、答えはどれも私のために働いていません。 TableViewControllerを含むコンテナを持つ親viewControllerがあります。親ビューには、データベースからデータを取得し、このデータをtableViewに提示する「送信」ボタンがあります。私はナビゲーションコントローラではなくコンテナビューを使用しているので、通常通りショーセグを使うことはできません。親viewController子でtableViewControllerを呼び出すと、containerViewにcellForRowAtIndexPathが呼び出されない

[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error){ 

    self.jsonData = [NSData dataWithData:data]; 

    if (self.jsonData) 
    { 
     //creating data arrays. Nothing special so I took it out 
     InitialDisplayTableViewController* idtvc = self.childViewControllers[0]; 

     idtvc.fullJSONResult = [NSArray arrayWithArray:self.fullJSONResultArray]; 

     [idtvc reloadData]; 
    } 
}]resume]; 

要求は私の親のViewControllerクラスで呼び出されているが、私は、実行をステップ実行するときreloadDataはnumberOfRows ...とnumberOfSections私がチェックしたとどちらもリターンゼロを呼び出します。私が見つけた他の記事はこれをコンテナビューで扱っていません。もし誰かがそれを助けることができたら嬉しいです!

答えて

0

あなたが唯一のメインスレッド上のUI要素を再ロード/更新する必要がありますが、幸いにもディスパッチ関数で行うのは簡単です:

[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error){ 

self.jsonData = [NSData dataWithData:data]; 

if (self.jsonData) 
{ 
    //creating data arrays. Nothing special so I took it out 

      dispatch_async(dispatch_get_main_queue(), ^{ 
       InitialDisplayTableViewController* idtvc = self.childViewControllers[0]; 

       idtvc.fullJSONResult = [NSArray arrayWithArray:self.fullJSONResultArray]; 

       [idtvc reloadData]; 
      }); 
    } 
}]resume]; 
関連する問題