Я пытаюсь внести некоторые изменения в пользовательский интерфейс, когда пользователь перемещается на следующую или предыдущую страницу в PDFView. Я настроил его на использование PageViewController по умолчанию. Я добавляю наблюдателя в PDFView и у меня настроен селектор для него. Он падает, когда я пытаюсь смахивать, и сообщение об ошибке таково:
-[PDFView handlePageChangedWithNotification:] unrecognized selector sent to instance
...
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PDFView handlePageChangedWithNotification:]: unrecognized selector to instance.
Я проверил метод делегата и не нашел ничего, что помогло бы выполнить эту функцию. Итак, я предполагаю, что мне нужно правильно назвать его, чтобы это работало. Вот код, который я использую для добавления наблюдателя:
// Add observer to pdfView
// This is added in viewDidAppear()
NotificationCenter.default.addObserver(pdfView, selector #selector(handlePageChange(view:)), name: .PDFViewPageChanged, object: nil)
// Selector method for observer
@objc private func handlePageChange(view: PDFView)
{
// Do some changes
}
Я ожидаю, что смогу проверить, когда отображается новая страница, чтобы иметь возможность проверить PDFOutline, если эта страница помечена как закладка, и изменить кнопку закладки, чтобы показать, что она уже является закладкой. Спасибо за любую помощь, которую вы можете оказать.
РЕДАКТИРОВАТЬ: я проверил документацию для уведомления PDFViewPageChanged, и он говорит, что объект уведомления является сам PDFView. Это все еще терпит крах, но я предполагаю, что это - одна проблема. Я изменил его в приведенном выше примере кода на то, что у меня сейчас.