我有一个 rootviewcontroller,我用它来子类化我的所有视图控制器,其中有一个协议,其中有一个我试图执行的方法,视图控制器设置如下
根视图控制器
protocol RootControllerDelegate: class {
func refreshTheTable(sender: AnyObject)
}
class RootViewController: UIViewController {
weak var rootDelegate : RootControllerDelegate?
}
所以我在我的一个视图控制器中有一个带有 IBAction 的按钮,它应该会触发委托功能。
视图控制器触发功能
// You can see here I'm subclassing the root view controller
class FiltersViewController: RootViewController, UITableViewDataSource, UITableViewDelegate {
@IBAction func doneButtonDidTouch(sender: AnyObject) {
rootDelegate?.refreshTheTable(sender)
dismissViewControllerAnimated(true, completion: nil)
}
}
因此,在这个视图控制器中,我在 viewdidAppear 中设置了委托,并且还调用了该函数,只是为了现在打印一些东西,只是为了测试目的,但什么也没发生。
视图控制器应该在哪里执行函数
class TopStoriesViewController: RootViewController, UITableViewDataSource, UITableViewDelegate, ReminderViewControllerDelegate, DZNEmptyDataSetDelegate, DZNEmptyDataSetSource, RootControllerDelegate {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(false)
rootDelegate = self
}
func refreshTheTable(sender: AnyObject) {
print("dsdsdsds")
}
}
但似乎什么都没有发生......当我调试它时它甚至不执行该功能