2016-08-28 9 views
0

XcodeとSwiftでiOSアプリを開発しています。UIBarButtonItemをテーピングして共有しようとするとiPadがクラッシュする

私はUIButtonをテーピングで定義された文字列を共有するために、このコードを使用しています:iPhoneやiPad上で非常にうまく機能

@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) 
    } 
} 

を。

今、同じことをしたいと思いますが、UIButtonの代わりにUIBarButtonItemを使用します。原因の、このコードはUIBarButtonItemでは機能しません。

@IBAction func shareApp(sender: AnyObject) {activityVC.popoverPresentationController?.sourceView = sender as? UIViewを変更すると、BarButtonItemをタップするとすぐにiPad'sがクラッシュします。

誰かがそれを修正する方法を知っていますか?

答えて

0

ipapの場合、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、私の遅い返事を申し訳ありません。あなたの解決策は役に立たなかった。私は私の質問を更新しました。それを見てください。手伝って頂けますか? –

関連する問題