2016-08-28 1 views
0

Я разрабатываю приложение iOS с Xcode и Swift.iPad падает при попытке поделиться, нажимая UIBarButtonItem

Я использую этот код, чтобы разделить определенную строку пластырем на UIButton:

@IBAction func shareApp(sender: UIButton) { 
    let textToShare = "Look at this:" 

    if let myWebsite = NSURL(string: "www.example.con") { 
     let objectsToShare = [textToShare, myWebsite] 
     let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 

     if #available(iOS 8.0, *) { 
      activityVC.popoverPresentationController?.sourceView = sender 
     } else { 
      // Fallback on earlier versions 
     } 
     self.presentViewController(activityVC, animated: true, completion: nil) 
    } 
} 

Это очень хорошо работает на iPhone и IPad.

Теперь, я хочу сделать то же самое, но используя UIBarButtonItem вместо UIButton. Причина. Этот код не работает для UIBarButtonItem.

Изменение @IBAction func shareApp(sender: AnyObject) { и activityVC.popoverPresentationController?.sourceView = sender as? UIView вызывает сбой на iPad's, как только я нажимаю на BarButtonItem.

Кто-нибудь знает, как это исправить?

ответ

0

Для iPad в дополнение к исходному виду для popoverPresentationController вам также необходимо добавить sourceRect. Попробуйте следующее:

 if (UIDevice.currentDevice().userInterfaceIdiom == .Pad) { 

    if let fromView = sender as? UIView { 
       youActivityVC.popoverPresentationController.sourceView = fromView 

    youActivityVC.popoverPresentationController.sourceRect = fromView.frame 
} 
} 
+0

Я проверю и вернусь. –

+0

Привет @luckystars, извините за мой поздний ответ. Ваше решение не помогло. Я обновил свой вопрос. Пожалуйста, взгляните на это. Вы можете мне помочь? –

 Смежные вопросы

  • Нет связанных вопросов^_^