gpt4 book ai didi

ios - 在具有位于父 View Controller 中的 objc 公开函数的 View Controller 中使用选择器

转载 作者:行者123 更新时间:2023-11-28 05:35:42 25 4
gpt4 key购买 nike

我正在创建一个页面 View Controller ,我想在其中创建两个存在于 PageViewController 中的 objc 公开函数:

@objc func nextPage() {
// navigates to next view controller
}

@objec func previousPage() {
// navigates to previous view controller
}

从其中一个 View Controller 的 PageViewController 显示,PageOneViewController,我想在一个 Action 上使用这个函数和一个选择器:

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:]: unrecognized selector sent to instance 0x....

选择器只能在同一个类中工作吗?你不能这样使用选择器功能吗?我主要不想在 PageViewController 显示的所有 View Controller 中编写一个 nextPage 函数。

最佳答案

您在 addTarget 中指定的 target 是必须包含将被调用的 action 的类。

改变:

button.addTarget(self, action: #selector(self.pageViewController?.nextPage), for: .touchUpInside)

到:

button.addTarget(self.pageViewController, action: #selector(PageViewController.nextPage), for: .touchUpInside)

请注意,现在目标是 self.pageViewController,操作是 PageViewController 类的 nextPage 方法。

关于ios - 在具有位于父 View Controller 中的 objc 公开函数的 View Controller 中使用选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58735218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com