У меня есть rootviewcontroller, который я использую для подкласса всех моих контроллеров представления, в этом есть протокол с методом, который я пытаюсь выполнить с помощью контроллера представления. как такМетод протокола не будет выполняться в другом контроллере представления
Root View Controller
protocol RootControllerDelegate: class {
func refreshTheTable(sender: AnyObject)
}
class RootViewController: UIViewController {
weak var rootDelegate : RootControllerDelegate?
}
так я есть кнопка с IBAction в одном из моих контроллеров зрения, которые предполагают, чтобы огонь функцию делегата.
View Controller, чтобы запустить функцию
// 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, а также называется функцией просто напечатать что-то на данный момент только для целей тестирования, но ничего случается.
View Controller, где функция должна выполнять
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")
}
}
Но ничего, кажется, происходит ... Когда я его отладки, а она даже не выполняет функцию, а