Я добавляю новую функцию в свое приложение, позволяющее пользователю обмениваться PDF-файлами через общую страницу UIActivityViewController. Это работает на iPhone, но генерирует ошибки ограничения. На iPad, однако, общий ресурс не отображается вообще, и есть ошибки ограничения.
Мой код:
@IBAction func shareAction(_ sender: UIBarButtonItem) {
print ("let's share")
let textToShare = "Select sharing option or save to Files app"
if let pdfData = self.pdfView.document?.dataRepresentation() {
let objectsToShare = [textToShare, pdfData] as [Any]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities:nil)
//New Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivity.ActivityType.addToReadingList, UIActivity.ActivityType.postToFacebook,UIActivity.ActivityType.postToTwitter]
//
print ("let's present vc")
DispatchQueue.main.async {
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
}
}
}
Сообщенные ошибки:
(
"<NSLayoutConstraint:0x280bfb7f0 LPLinkView:0x11242d950.leading == UILayoutGuide:0x2811bce00'UIViewLayoutMarginsGuide'.leading (active)>",
"<NSLayoutConstraint:0x280bfaf30 H:[LPLinkView:0x11242d950]-(59)-| (active, names: '|':_UIActivityContentTitleView:0x100bdc0b0 )>",
"<NSLayoutConstraint:0x280b95040 H:|-(0)-[_UIActivityContentTitleView:0x100bdc0b0] (active, names: '|':_UINavigationBarContentView:0x100db4290 )>",
"<NSLayoutConstraint:0x280b96710 _UIActivityContentTitleView:0x100bdc0b0.trailing == _UINavigationBarContentView:0x100db4290.trailing (active)>",
"<NSLayoutConstraint:0x280bd2c60 'UIView-Encapsulated-Layout-Width' _UINavigationBarContentView:0x100db4290.width == 6 (active)>",
"<NSLayoutConstraint:0x280bfb8e0 'UIView-leftMargin-guide-constraint' H:|-(16)-[UILayoutGuide:0x2811bce00'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':_UIActivityContentTitleView:0x100bdc0b0 )>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x280bfb7f0 LPLinkView:0x11242d950.leading == UILayoutGuide:0x2811bce00'UIViewLayoutMarginsGuide'.leading (active)>
Что я уже знаю:
Я знаю, что есть ошибка с ограничением, и я знаю, что мои проблемы, по сути, такой же, как описанный здесь пять месяцев go:
Почему UIActivityViewController отображает ошибки автоматического ограничения в консоли
То, что я пробовал до сих пор Чтобы решить мою проблему:
• Я попытался использовать Dispatch.main.asyn c, как указано в нижней части ссылки, но это не решило мою проблему.
• Я также попытался удалить все ограничения из DetailViewController, но это также не решило проблему. Ошибки ограничения все еще есть. Как могут быть ошибки ограничения без ограничений?
Есть ли проблема с моим кодом или это та же самая нерешенная ошибка с Apple? Если последнее, есть ли обходной путь?
Спасибо,
Eli