Pdfview, открыть новый pdf с таким же pdfdestination - PullRequest
0 голосов
/ 29 июня 2019

В настоящее время я столкнулся с проблемой, когда я хочу, чтобы пользователь мог переключаться между неотредактированным документом pdf и отредактированным, оставаясь при этом в том же месте в документе. Поэтому, если пользователь находится на странице 4 на полпути, прокручивается до страницы 5, я хочу, чтобы коммутатор открыл отредактированную версию на странице 4, на полпути прокручивается до страницы 5.

Все это делается в pdfView, я пытался использовать pdfView.currentpage и pdfView.currentDestination, но пока ничего не получалось.

У меня есть переключатель, при котором пользователь должен перейти с неотредактированного на отредактированный документ, именно здесь я попытался сохранить текущее назначение, а также попытался использовать текущую страницу для последующего использования в LoadPDF () в качестве pdfView.go ()

Это функция, которую я использую для открытия документа. Затем я изменяю строку, содержащуюся в переменной pdfFile, чтобы изменить файл, который нужно открыть.

func LoadPDF() {
    if let path = Bundle.main.path(forResource: pdfFile, ofType: "pdf" ) {

        let url = URL(fileURLWithPath: path)
        if let pdfDocument = PDFDocument(url: url) {

            pdfView.autoScales = true
            pdfView.displayMode = .singlePageContinuous
            pdfView.displayDirection = .vertical
            pdfView.document = pdfDocument
            pdfView.maxScaleFactor = 4.0
            pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit

            //this is where i put pdfView.go(to: Swap)
        }    
    }
}

Это функция переключения

func Answers(_ sender: Any) {
    if AnswersOn.isOn {
        pdfFile = pdfFileO
        //here is where i used Swap = pdfView.currentdestination etc
        LoadPDF()

    } else {
        //here is where i used Swap = pdfView.currentpage etc
        pdfFile = pdfFileR
        LoadPDF()
    }
}

Переменные, которые я использую для currentpage и currentdestination, похоже, не содержат ничего, поэтому программа просто прерывает действие.

...