触发器Segue - 当UITableView完成重新加载时

时间:2016-03-30 07:26:55

标签: ios swift uitableview

以下是我的StoryBoard的样子:

UINavigationController -> UIViewController -> UITableViewController

我希望UIViewController充当waiting screen,而UITableViewController从服务器异步获取数据。在UITableViewController完成提取数据后,我才想从UITableViewController

执行UIViewController的segue

在我的UIViewController我已经设置了基本的KVO:

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
    }
 }

在UITableView中,当tableView获取数据并准备就绪时发布通知

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)
            })

        }
    }
}

这不起作用。关于如何使其发挥作用的任何想法?

1 个答案:

答案 0 :(得分:0)

从UITableViewController中取出数据,并将该功能移到委托类中。然后,从UIViewController,告诉委托提取数据,然后触发UIViewController的segue。当表重新加载时,它会向代表查找数据。