0

私は2つのViewControllerを持っています。最初のViewControllerにはTableViewがあります。私は2番目のViewControllerをプログラムでモーダル表示します。 2番目のViewControllerではイメージをダウンロードします。今度は、ダウンロード完了後に2番目のViewControllerを終了します。そして、その間、私は、画像でTableViewを更新し、その特定のセルを選択させたいと思います。プログラムでモーダルに提示されたUIViewControllerを却下した後、UITableViewをリロードします

私はこのプロセスを行うために代理人を使用しました。しかし、それはTableViewを更新できませんでした。

私はviewDidAppear、viewWillAppearメソッドを使用してTableViewをリロードしました。しかし効果はありません。

誰でもこの特定のタスクを完了するために私を示唆できますか?

私はこの方法で私の第二のViewControllerを提示している:

ImageSelectionViewController *viewController= [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"modal"]; 
viewController.modalPresentationStyle = UIModalPresentationCustom; 
viewController.carDownloadName = [self.listOfItem objectAtIndex:sender.tag]; 

[self presentViewController:viewController animated:YES completion:nil]; 

、この方法でのViewControllerを却下:

[self dismissViewControllerAnimated:YES completion:nil]; 

答えて

0

あなたがブロック

を解任使用することができます[自己dismissViewControllerAnimated:YES完了:^ {

 <do something on completion here> 

    }]; 
ViewControllerBで

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let viewControllerB = segue.destinationViewController as! ViewControllerB 
    viewControllerB.callback = { message in 
     //Do what you want in here! 
    } 
} 

:ViewControllerAに下記ないバックUIImageを送信するため

0

+0

var callback : (String -> Void)? @IBAction func done(sender: AnyObject) { callback?("Hi") self.dismissViewControllerAnimated(true, completion: nil) } 
Iは、第2のビューコントローラのデリゲートメソッドを介して任意のデータを渡すことができます。その後、[_tableView reloadData]メソッドを呼び出します。 しかし、私のテーブルビューは再ロードされません。テーブルビューはまったく更新されません。 どうすればよいですか? – Tann

+0

'reloadData'はどこにありますか? – Eric

+0

私は、第2のビューコントローラデリゲートメソッド – Tann

関連する問題