2015-12-12 12 views
11

किसी iPhone/iPad ऐप के लिए, मेरे पास UIBarButtonItem पर क्लिक करने पर साझा करने की कार्यक्षमता है।UIActivityViewController सेट स्रोत UIBarButtonItem

UIActivityViewController * activityVC = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil]; 

    [self presentViewController:activityVC animated:YES completion:nil]; 

आईपैड के लिए हालांकि, यह कोड त्रुटियां हैं क्योंकि मुझे गतिविधिVC के लिए स्रोत दृश्य सेट करने की आवश्यकता है।

इसलिए मुझे यह कोड जोड़ने की आवश्यकता है, लेकिन इसे UIBarButtonItem की स्थिति में सेट करें।

activityVC.popoverPresentationController.sourceView = SomeUIBarButtonItem; 

लेकिन यह काम नहीं करता है के बाद से UIBarButtonItem UIView से विरासत नहीं करता है (जो मेरे लिए वास्तव में अजीब बात है और मैं इस तर्क नहीं मिलता है)।

क्या इसे सेट करने का कोई तरीका है ताकि शेयर पॉपओवर बार बटन आइटम को इंगित कर रहा हो?

धन्यवाद,

+10

क्या आपने 'UIPopoverPresentationController' की' barButtonItem' प्रॉपर्टी देखी है? – rmaddy

+0

ओह, मुझे एहसास हुआ कि बारबटन इटिम था, और यह उम्मीद के अनुसार काम करता है! सहायता के लिए धन्यवाद! –

उत्तर

18

तुम सब पॉपओवर के barButtonItem संपत्ति का उपयोग करने की जरूरत है। iPads, UIAlertController साथ के लिए एक पूर्ण समर्थन के लिए

popover.barButtonItem = self.navigationItem.rightBarButtonItem; 

एक अन्य उदाहरण है (लेकिन ActivityViewController साथ सिर्फ एक ही काम करता है):

तो एक उचित कोड iPads पर ActivityViewController या UIAlertController समर्थन करने के लिए

UIPopoverPresentationController *popover = alert.popoverPresentationController; 
if (popover) 
{ 
    popover.barButtonItem = self.navigationItem.rightBarButtonItem; 
    popover.permittedArrowDirections = UIPopoverArrowDirectionUp; 
} 

[self presentViewController:alert animated:YES completion:nil];