Ios “无法将类型为“Void”的值分配给类型为“PdFantion?”“为PdFantion设置操作时出错。”

Ios “无法将类型为“Void”的值分配给类型为“PdFantion?”“为PdFantion设置操作时出错。”,ios,swift,pdf,pdfkit,Ios,Swift,Pdf,Pdfkit,在我的PDF Viewer应用程序中,我成功地打开了一个PDF并显示了它的所有内容。该应用程序将始终显示的PDF文件相当大,有130页。在PDF的第二页,有一个目录。我想在文本中添加一个PDFButton,并滚动到用户选择的PDF中的正确页面 我的当前代码显示一个按钮,但我希望该按钮执行的操作会导致错误: 无法将“Void”类型的值指定给“pdp”类型 以下是我尝试过的代码: func insertResetButtonInto(_ page: PDFPage, GoTo: PDFPage) {

在我的PDF Viewer应用程序中,我成功地打开了一个PDF并显示了它的所有内容。该应用程序将始终显示的PDF文件相当大,有130页。在PDF的第二页,有一个目录。我想在文本中添加一个PDFButton,并滚动到用户选择的PDF中的正确页面

我的当前代码显示一个按钮,但我希望该按钮执行的操作会导致错误:

无法将“Void”类型的值指定给“pdp”类型

以下是我尝试过的代码:

func insertResetButtonInto(_ page: PDFPage, GoTo: PDFPage) {
    let resetButtonBounds = CGRect(x: 90, y: 200, width: 200, height: 15)
    let resetButton = PDFAnnotation(bounds: resetButtonBounds, forType: PDFAnnotationSubtype(rawValue: PDFAnnotationSubtype.widget.rawValue), withProperties: nil)
    resetButton.widgetFieldType = PDFAnnotationWidgetSubtype(rawValue: PDFAnnotationWidgetSubtype.button.rawValue)
    resetButton.widgetControlType = .pushButtonControl
    resetButton.backgroundColor = UIColor.green
    page.addAnnotation(resetButton)

    // Create PDFActionResetForm action to clear form fields.
    resetButton.action = pdfView.go(to: page)
}

如何在PDF中创建一个按钮,作为序列或滚动函数,将用户带到同一PDF文档中的不同页面?

您正在尝试将一个函数分配给一个需要PDP的变量。将引发错误的行替换为以下内容:

resetButton.action = PDFActionGoTo(destination: PDFDestination(page: page, at: .zero))
这会将带有您先前初始化的页面的pdfdestation传递给pdfdgotodestination:initializer

如果要修改目标点,请将PDFDestination初始值设定项的at参数更改为另一个CGPoint值:


我知道这是一个单独的问题,但你知道我如何在应用程序中将PDFButton切换到不同的ViewController吗?或者这不能通过PDFButton来完成吗?@voodoo检查这个问题,了解一个委托方法,该方法允许您在点击PDFAnnotation时运行自定义函数:如何将目标点设置为页面顶部?@voodoo将at值设置为.0。
let point = CGPoint(x: 50, y: 100)
resetButton.action = PDFActionGoTo(destination: PDFDestination(page: page, at: point))