Приложение Swift «зависает» при попытке поделиться контентом по почте или сообщению - PullRequest
0 голосов
/ 26 апреля 2018

при попытке поделиться контентом через Почту или Сообщение (используя UIActivityViewController) экран «зависает» при попытке закрыть представление «Почта» или «Сообщение» после действия отправки или отмены.

Консоль ничего не показывает.Однако кажется, что представление моего начального ViewController застревает в цикле, вызывающем layoutSubviews ().

Снимок экрана замороженного экрана

Вот моя функция, которая представляет UIActivityViewController:

func displayShareSheet(shareContent:String) {
    self.service.AnalyticsActionShareFeedback()

    let shareView = UIView(frame: self.view.bounds)
    let bgImageView = UIImageView(frame: shareView.bounds)
    bgImageView.image = self.backgroundImage.image
    bgImageView.clipsToBounds = true
    shareView.addSubview(bgImageView)

    let viewCopy = UIImageView(image: UIImage(view: view))
    shareView.addSubview(viewCopy)
    let shareImage = UIImage(view: shareView)
    let activityViewController = UIActivityViewController(activityItems: [shareContent as NSString, shareImage as UIImage], applicationActivities: nil)
    activityViewController.completionWithItemsHandler = {(act, success, a, error) in
        print("Activity dismissed")
    }
    activityViewController.excludedActivityTypes = [.addToReadingList, .airDrop, .assignToContact, .openInIBooks, .postToFacebook, .postToTwitter, .postToVimeo, .postToWeibo, .postToFlickr, .saveToCameraRoll]
    let subject = "Received Feedback via MyFeedback"
    activityViewController.setValue(subject, forKey: "Subject")
    if let popoverController = activityViewController.popoverPresentationController {
        popoverController.sourceView = self.view
        popoverController.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
        popoverController.permittedArrowDirections = []
    }

    DispatchQueue.main.async {
        self.present(activityViewController, animated: true, completion: {
            print("Activity shown")
        })
    }

}

Есть идеи?РЕДАКТИРОВАТЬ: Снимок экрана при приостановке выполнения: Снимок экрана при приостановке выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...