2016-08-28 3 views
0

Xcode와 Swift로 iOS 앱을 개발하고 있습니다.UIBarButtonItem을 테이핑하여 공유하려고하면 iPad가 충돌합니다.

은 내가 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) 
    } 
} 

합니다.

이제는 동일한 작업을 수행하고 싶지만 UIButton 대신 UIBarButtonItem을 사용하고 싶습니다. 원인, UIBarButtonItem이 코드는 작동하지 않습니다.

BarButtonItem을 탭하자마자 @IBAction func shareApp(sender: AnyObject) {activityVC.popoverPresentationController?.sourceView = sender as? UIView을 변경하면 iPad's에 충돌이 발생합니다.

누구든지 문제를 해결할 방법을 알고 있습니까?

답변

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, 내 늦은 답장을 드려 죄송합니다. 당신의 해결책은 도움이되지 못했습니다. 내 질문을 업데이트했습니다. 그것을보십시오. 너 나 좀 도와 줄 수있어? –