以下是我的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)
})
}
}
}
这不起作用。关于如何使其发挥作用的任何想法?
答案 0 :(得分:0)
从UITableViewController中取出数据,并将该功能移到委托类中。然后,从UIViewController
,告诉委托提取数据,然后触发UIViewController
的segue。当表重新加载时,它会向代表查找数据。