2016-03-30 5 views
0

をリロード仕上私のストーリーボードがどのように見えるかです。ときのtableView私は通知を掲示していますのUITableViewでトリガーセグエのUITableViewはここ自体が

override func viewDidLoad() { 
    super.viewDidLoad() 
    let tableView = MyUITableViewController() 
    tableView.viewDidLoad() //How to initiate ViewController? 
    ... 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "tableReady:", name: "TableReady", object: nil) 
} 

    func tableReady(notification: NSNotification) { 
    if notification.name == "tableReady"{ 
     print("TableViewReady") 
     //perform segue here 
    } 
} 

UITableViewControllerは、データをフェッチ完了したら、その場合にのみ、私は私のUIViewController

UIViewControllerから UITableViewControllerにセグエを実行したい私は、セットアップの基本的なKVOを持っていますデータを取得して準備完了です。

private var posts = [Post]() { 
    didSet { 
     if posts.count == self.postsLimit{ 
      print("reloading data") 
      dispatch_async(dispatch_get_main_queue(), {() -> Void in 
       self.tableView.reloadData() 
       UIApplication.sharedApplication().networkActivityIndicatorVisible = false 
       NSNotificationCenter.defaultCenter().postNotificationName("tableReady", object: self) 
      }) 

     } 
    } 
} 

これは機能しません。どのようにそれを動作させるための任意のアイデアですか?

+0

NSNotificationCenter.defaultCenter()。addObserver ...とNSNotificationCenter.defaultCenter()の前にprintステートメントを追加してくださいpostNotificationName ... viewDidLoadが呼び出される前にデータがロードされていれば、最初のViewConrtollerは通知されません。 – lorenzoliveto

答えて

0

UITableViewControllerからのデータフェッチをデカップルし、その機能をデレゲートクラスに移動します。次に、UIViewControllerからデリゲートにデータを取得させ、次にUIViewControllerのセグをトリガーするように指示します。テーブルがリロードされると、デリゲートはデータを探します。

関連する問題