私はこれですべてのView Controllerをサブクラス化するために使用しているrootviewcontrollerを持っています.View Controllerを実行しようとしているメソッドを持つプロトコルがそのように設定されています.
ルート ビュー コントローラー
protocol RootControllerDelegate: class {
func refreshTheTable(sender: AnyObject)
}
class RootViewController: UIViewController {
weak var rootDelegate : RootControllerDelegate?
}
だから私はデリゲート関数を起動すると思われる私のView Controllerの1つに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)
}
}
したがって、このView Controllerでは、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")
}
}
しかし、何も起こっていないようです...デバッグしても、関数も実行されません