Ios 在视图控制器中使用选择器,并在父视图控制器中使用objc公开的函数
我正在创建一个页面视图控制器,我想在其中创建两个存在于页面视图控制器中的objc公开函数:Ios 在视图控制器中使用选择器,并在父视图控制器中使用objc公开的函数,ios,swift,selector,Ios,Swift,Selector,我正在创建一个页面视图控制器,我想在其中创建两个存在于页面视图控制器中的objc公开函数: @objc func nextPage() { // navigates to next view controller } @objec func previousPage() { // navigates to previous view controller } 从其中一个视图控制器的PageViewController显示,PageOneViewController,我想将此功能与操作
@objc func nextPage() {
// navigates to next view controller
}
@objec func previousPage() {
// navigates to previous view controller
}
从其中一个视图控制器的PageViewController显示,PageOneViewController,我想将此功能与操作上的选择器一起使用:
var pageViewController: PageViewController? {
guard let parent = self.parent as? PageViewController else {
return nil
}
return parent
}
button.addTarget(self, action: #selector(self.pageViewController?.nextPage), for: .touchUpInside)
但是,当我执行此操作时,会出现错误:”-[MyProject.PageOneViewController nextPage:]:无法识别的选择器发送到实例0x…
选择器是否仅在同一类中工作?您不能这样使用选择器功能吗?我主要不想在PageViewController显示的所有视图控制器中编写
nextPage
函数。您在addTarget
中指定的目标是必须包含将被调用的操作的类
更改:
button.addTarget(self, action: #selector(self.pageViewController?.nextPage), for: .touchUpInside)
致:
请注意,现在目标是self.pageViewController
,操作是pageViewController
类的nextPage
方法
button.addTarget(self.pageViewController, action: #selector(PageViewController.nextPage), for: .touchUpInside)