Почему UIActivityViewController вызывает ошибки ограничения автоматического размещения на iPad? - PullRequest
0 голосов
/ 23 апреля 2020

Я добавляю новую функцию в свое приложение, позволяющее пользователю обмениваться 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

...