UIActivityViewController iOS 8 iPads पर दुर्घटनाग्रस्त हो गया


288

मैं वर्तमान में एक्सकोड 6 (बीटा 6) के साथ अपने ऐप का परीक्षण कर रहा हूं। UIActivityViewController iPhone उपकरणों और सिमुलेटरों के साथ ठीक काम करता है लेकिन निम्नलिखित संस्करणों के साथ iPad सिमुलेटर और उपकरणों (iOS 8) के साथ क्रैश होता है

Terminating app due to uncaught exception 'NSGenericException', 
reason: 'UIPopoverPresentationController 
(<_UIAlertControllerActionSheetRegularPresentationController: 0x7fc7a874bd90>) 
should have a non-nil sourceView or barButtonItem set before the presentation occurs.

मैं आईओएस 7 के साथ-साथ आईओएस 8 के लिए आईफोन और आईपैड के लिए निम्नलिखित कोड का उपयोग कर रहा हूं

NSData *myData = [NSData dataWithContentsOfFile:_filename];
NSArray *activityItems = [NSArray arrayWithObjects:myData, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:nil applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard];
[self presentViewController:activityViewController animated:YES completion:nil];

मैं अपने एक अन्य ऐप के साथ भी इसी तरह दुर्घटनाग्रस्त हो रहा हूं। क्या आप कृपया मेरा मार्गदर्शन कर सकते हैं? iOS 8 में UIActivityViewController के साथ कुछ भी बदल गया है? मैंने जाँच की लेकिन मुझे इस पर कुछ नहीं मिला


मुहावरे का परीक्षण नीचे दिए गए उत्तर। आपको @ गैलेन के उत्तर का उपयोग करना चाहिए जो नहीं करता है।
doozMen

जवाबों:


462

IPad पर गतिविधि दृश्य नियंत्रक को नए UIPopoverPresentationController का उपयोग करते हुए एक पॉपओवर के रूप में प्रदर्शित किया जाएगा , इसके लिए आवश्यक है कि आप तीन निम्न गुणों में से एक का उपयोग करते हुए पॉपओवर की प्रस्तुति के लिए एक एंकर बिंदु निर्दिष्ट करें:

लंगर बिंदु को निर्दिष्ट करने के लिए आपको UIActivityController के UIPopoverPresentationController का संदर्भ प्राप्त करना होगा और निम्न में से एक गुण सेट करना होगा:

if ( [activityViewController respondsToSelector:@selector(popoverPresentationController)] ) { 
// iOS8
 activityViewController.popoverPresentationController.sourceView =
parentView;
 }

4
@ डलजीट एक सरल तरीका यह होगा कि जहां भी आप पॉपओवर के बिंदु को प्रदर्शित करना चाहते हैं और लंगर दृश्य के रूप में उपयोग करना चाहते हैं, वहां 1x1 पारदर्शी दृश्य रखें।
मेसन क्लाउड

3
@Thanks mmccomb, मैंने आपके कोड को ऊपर लागू कर दिया है, यह iOS 8 पर ठीक काम करता है, लेकिन iOS 7.I पर मेरा ऐप क्रैश हो गया है, मैंने स्टैकओवरफ़्लो पर एक ही समस्या पोस्ट की है यहाँ लिंक है: stackoverflow.com/questions/26034149-… मदद की सराहना की है
दलजीत

48
@Daljeet यह iOS7 पर क्रैश हो जाएगा क्योंकि UIActivityController के पास प्रॉपर्टी पॉपओवरप्रेशन कॉकरोलर नहीं है। IOS8 और iOS7 पर काम करने के लिए इस कोड का उपयोग करें: if ( [activityViewController respondsToSelector:@selector(popoverPresentationController)] ) { // iOS8 activityViewController.popoverPresentationController.sourceView = _shareItem; }
ब्लूबामो

4
iOS8 में, sourceRect ने मेरे लिए काम नहीं किया। मुझे उस रेक्ट के साथ एक souceView बनाना था, और यह ठीक काम किया।
हैरिस

10
@bluebamo आप अपने सुझाव को उत्तर में संपादित करने के लिए क्यों नहीं जोड़ते हैं। इन टिप्पणियों में अपनी महत्वपूर्ण जानकारी को याद करना काफी आसान है।
आयुष गोयल

204

एक ही समस्या मेरे प्रोजेक्ट के लिए आई है तो मुझे इसका समाधान मिला कि UIActivityViewControllerआईपैड को खोलने के लिए हमें उपयोग करना होगाUIPopoverController

यहाँ iPhone और iPad दोनों में इसका उपयोग करने के लिए एक कोड है:

//to attach the image and text with sharing 
UIImage *image=[UIImage imageNamed:@"giraffe.png"];
NSString *str=@"Image form My app";
NSArray *postItems=@[str,image];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:postItems applicationActivities:nil];

//if iPhone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    [self presentViewController:controller animated:YES completion:nil];
}
//if iPad
else {
    // Change Rect to position Popover
    UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:controller];
    [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

स्विफ्ट 4.2 / स्विफ्ट 5 के लिए

func openShareDilog() {
    let text = "share text will goes here"

    // set up activity view controller
    let textToShare = [text]
    let activityViewController = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)
    activityViewController.excludedActivityTypes = [.airDrop]

    if let popoverController = activityViewController.popoverPresentationController {
        popoverController.sourceRect = CGRect(x: UIScreen.main.bounds.width / 2, y: UIScreen.main.bounds.height / 2, width: 0, height: 0)
        popoverController.sourceView = self.view
        popoverController.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
    }

    self.present(activityViewController, animated: true, completion: nil)
}

5
"नया" स्विफ्ट सिंटैक्स के लिए, UIPopoverArrowDirectionAny होना चाहिए UIPopoverArrowDirection.Any और UIUserInterfaceIdiomPhone UIUserInterfaceIdiD.Phone है
EPage_Ed

1
बहुत बहुत धन्यवाद, यह, EPage_Ed की टिप्पणियों के साथ, XCode 7 और SWIFT 2 पर काम करता है। मैंने इसे अपटूडेट किया है।
ओलिवर झांग

1
UIPopoverController को iOS 9.
cbartel

3
UIPopOverController को iOS 9.
Leena

1
हर किसी को इस तरह से जवाब देना चाहिए क्योंकि यह स्विफ्ट के लिए आईओएस के जवाब के लिए नेविगेट करना आसान है .. धन्यवाद आदमी आपने मेरा दिन बना दिया।
एमबीएच

42

मैं इस सटीक समस्या का सामना हाल ही में (मूल प्रश्न) स्विफ्ट 2.0 में कर रहा था, जहां UIActivityViewController iPhones के लिए ठीक काम किया था, लेकिन iPads का अनुकरण करते समय क्रैश का कारण बना।

मैं यहां केवल इस उत्तर के धागे को जोड़ना चाहता हूं, कम से कम स्विफ्ट 2.0 में, आपको एक बयान की आवश्यकता नहीं है। आप बस बना सकते हैंpopoverPresentationController वैकल्पिक ।

एक तरफ एक त्वरित रूप से, स्वीकृत उत्तर यह कहता प्रतीत होता है कि आपके पास सिर्फ एक स्रोत दृश्य हो सकता है, बस एक स्रोत-खंड, या सिर्फ एक बारबटन इटेम, लेकिन UIPopoverPresentationController के लिए Apple के दस्तावेज़ के अनुसार आपको निम्न में से एक की आवश्यकता है:

  • barButtonItem
  • sourceView और sourceRect

मैं जिस विशेष उदाहरण पर काम कर रहा था, वह नीचे है, जहां मैं एक फ़ंक्शन बना रहा हूं, जो UIView(sourceView और sourceRect के लिए) और String( UIActivityViewController की एकमात्र गतिविधि Item) में लेता है ।

func presentActivityViewController(sourceView: UIView, activityItem: String ) {

    let activityViewController = UIActivityViewController(activityItems: [activityItem], applicationActivities: [])

    activityViewController.popoverPresentationController?.sourceView = sourceView
    activityViewController.popoverPresentationController?.sourceRect = sourceView.bounds

    self.presentViewController(activityViewController, animated: true, completion: nil)
}

यह कोड iPhone और iPad (और यहां तक ​​कि टीवीओएस मुझे लगता है) पर काम करता है - अगर डिवाइस समर्थन नहीं करता है popoverPresentationController , तो कोड की दो लाइनें जो इसका उल्लेख करती हैं, उन्हें अनिवार्य रूप से अनदेखा किया जाता है।

Kinda अच्छा है कि आप इसे iPads के लिए काम करने की जरूरत है सिर्फ कोड की दो लाइनें जोड़ रहा है, या सिर्फ एक अगर आप एक barButtonItem का उपयोग कर रहे हैं!


2
यह सॉल्यूशन अन्य सॉल्यूशंस की तुलना में ज्यादा साफ-सुथरा लगता है, जिसका उपयोग करना है respondsToSelectorया UIUserInterfaceIdiom, यह स्विफ्ट को एक भाषा के रूप में ज्यादा बेहतर लगता है। यद्यपि ऐसा respondsToSelectorलगता है कि यह iOS7 के लिए आवश्यक है, अगर iOS के नए संस्करणों का उपयोग करना निश्चित रूप से जाने का रास्ता है।
मार्कस

18

मैं स्विफ्ट कोड का उपयोग करते समय बहुत से लोग iPhone / iPad आदि को हार्डकोड करते हुए देखते हैं।

यह आवश्यक नहीं है, आपको भाषा सुविधाओं का उपयोग करना होगा। निम्न कोड मानता है कि आप UIBarButtonItem का उपयोग करेंगे और iPhone और iPad दोनों पर काम करेंगे ।

@IBAction func share(sender: AnyObject) {
    let vc = UIActivityViewController(activityItems: ["hello"], applicationActivities: nil)
    vc.popoverPresentationController?.barButtonItem = sender as? UIBarButtonItem
    self.presentViewController(vc, animated: true, completion: nil)
 }

ध्यान दें कि कैसे कोई बयान या कोई अन्य पागल बात नहीं है। वैकल्पिक अल्ट्राप्पिंग iPhone पर शून्य हो जाएगा, इसलिए लाइन vc.popoverPresentationController?iPhones पर कुछ भी नहीं करेगी।


इस ट्यूटोरियल के संदर्भ में यह कैसा लगेगा
डेव क्लिमन

1
ट्यूटोरियल popoverPresentationController का उल्लेख नहीं करता है, जिससे कि कोड iPad iOS 9.x पर क्रैश हो जाएगा। vc.popoverPresentationController?.barButtonItem = navigationItem.rightBarButtonItemदृश्य नियंत्रक प्रस्तुत करने से पहले समाधान जोड़ना होगा ।
मार्टिन मार्कोसिनी

हाय मार्टिन ... मैं पहले से ही एक लाइन में इस तरह लग रहा था shareTapped(): vc.popoverPresentationController?.barButtonItem = sender as? UIBarButtonItemदोनों अभी भी दुर्घटनाग्रस्त हो गया। मैं क्या गलत कर रहा हूं? जब तक मैं यहाँ हूँ, मैं कैसे फेसबुक, ट्विटर, आदि जैसे विभिन्न शेयर सेवाओं के साथ आबादी को आबाद करूँ?
डेव क्लिमन

और दुर्घटना क्या है? आप अपना स्वयं का प्रश्न पोस्ट करना चाह सकते हैं। जांचें कि senderवास्तव में ए UIBarButtonItem। जाँच करें कि vc नहीं है nil। जाँचें कि आप एक ViewController प्रस्तुत कर सकते हैं ... दुर्घटना / कोड को देखने के बिना यह बताना मुश्किल है। यदि उपयोगकर्ता के पास ऐप इंस्टॉल है (जब तक कि आपने स्पष्ट रूप से कुछ को बाहर करने का फैसला नहीं किया है) सेवाओं को स्वचालित रूप से पॉपुलेट किया जाएगा।
मार्टिन मार्कोसिनी

1
@DaveKliman हाँ, जब IBOutlets और IBActions को हटा दिया गया है, जिनका नाम हटा दिया गया है और उनका नाम बदल दिया गया है, तो Xcode बहुत खराब है और यह स्टार्टअप पर क्रैश होगा IOS पर वास्तव में ऐसा करने का कोई अलग तरीका नहीं है, आपको Xcode और InterfaceBuilder का उपयोग करने की आवश्यकता है। आप बहुत सी चीजें "कोड में" कर सकते हैं लेकिन कुछ को "ड्रैग एंड ड्रॉपिंग" की आवश्यकता होती है। Apple चाहता है कि आप स्टोरीबोर्ड और InterfaceBuilder का अधिक से अधिक उपयोग करें ... तो इसकी आदत
डालें

10

Xamarin.iOS का उपयोग कर समाधान।

मेरे उदाहरण में मैं एक स्क्रीन कैप्चर कर रहा हूं, एक छवि का निर्माण कर रहा हूं, और उपयोगकर्ता को छवि साझा करने की अनुमति दे रहा हूं। IPad पर पॉप अप स्क्रीन के बीच में रखा गया है।

var activityItems = new NSObject[] { image };
var excludedActivityTypes = new NSString[] {
    UIActivityType.PostToWeibo,
    UIActivityType.CopyToPasteboard,
    UIActivityType.AddToReadingList,
    UIActivityType.AssignToContact,
    UIActivityType.Print,
};
var activityViewController = new UIActivityViewController(activityItems, null);

//set subject line if email is used
var subject = new NSString("subject");
activityViewController.SetValueForKey(NSObject.FromObject("Goal Length"), subject);

activityViewController.ExcludedActivityTypes = excludedActivityTypes;
//configure for iPad, note if you do not your app will not pass app store review
if(null != activityViewController.PopoverPresentationController)
{
    activityViewController.PopoverPresentationController.SourceView = this.View;
    var frame = UIScreen.MainScreen.Bounds;
    frame.Height /= 2;
    activityViewController.PopoverPresentationController.SourceRect = frame;
}
this.PresentViewController(activityViewController, true, null);

बहुत बहुत धन्यवाद :) एक निर्भरता सेवा का उपयोग कर Xamarin रूपों के साथ काम करता है
रिकार्डो रोमियो

7

स्विफ्ट, आईओएस 9/10 (UIPopoverController पदावनत के बाद)

let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)

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

       if activityViewController.respondsToSelector(Selector("popoverPresentationController")) {
          activityViewController.popoverPresentationController?.sourceView = self.view
        }
    }

    self.presentViewController(activityViewController, animated: true, completion: nil)

3
स्विफ्ट 3 इसका समर्थन नहीं करता है
मक्सिम नियाज़ेव

5

आईपैड के लिए इसे ठीक करने के लिए स्विफ्ट में, सबसे अच्छा तरीका यह है कि मैंने ऐसा पाया।

    let things = ["Things to share"]
    let avc = UIActivityViewController(activityItems:things, applicationActivities:nil)
    avc.setValue("Subject title", forKey: "subject")
    avc.completionWithItemsHandler = {
        (s: String!, ok: Bool, items: [AnyObject]!, err:NSError!) -> Void in
    }

    self.presentViewController(avc, animated:true, completion:nil)
    if let pop = avc.popoverPresentationController {
        let v = sender as! UIView // sender would be the button view tapped, but could be any view
        pop.sourceView = v
        pop.sourceRect = v.bounds
    }

@ गलेन जवाब का उपयोग करें। IOS8 +
doozMen

5

यदि आप निम्न कोड का उपयोग करते UIActivityViewControllerसमय दिखाते हैं UIBarButtonItem:

activityViewController.popoverPresentationController?.barButtonItem = sender

अन्यथा, यदि आप किसी अन्य नियंत्रण का UIButtonउपयोग करते हैं, उदाहरण के लिए , निम्न कोड का उपयोग करें:

activityViewController.popoverPresentationController?.sourceView = sender
activityViewController.popoverPresentationController?.sourceRect = sender.bounds

प्रलेखन से UIPopoverPresentationController:

var barButtonItem: UIBarButtonItem? { get set }

निर्दिष्ट बार बटन आइटम के लिए पॉपओवर को एंकर करने के लिए इस गुण का मान असाइन करें। प्रस्तुत किए जाने पर, पॉपओवर का तीर निर्दिष्ट आइटम को इंगित करता है। वैकल्पिक रूप से, आप स्रोत दृश्य और sourceRect गुणों का उपयोग करते हुए पॉपओवर के लिए लंगर स्थान निर्दिष्ट कर सकते हैं।


4

स्विफ्ट 2.0 के लिए फिक्स

    if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone {
        self.presentViewController(activityVC, animated: true, completion: nil)
    }
    else {
        let popup: UIPopoverController = UIPopoverController(contentViewController: activityVC)
        popup.presentPopoverFromRect(CGRectMake(self.view.frame.size.width / 2, self.view.frame.size.height / 4, 0, 0), inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
    }

2
UIPopoverController को हटा दिया गया है।
लेविंसनटैक्नोलाजी

1
धन्यवाद!! इसने मेरी बहुत मदद की।
ऑस्कर

4

स्विफ्ट 3:

class func openShareActions(image: UIImage, vc: UIViewController) {
    let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
    if UIDevice.current.userInterfaceIdiom == .pad {
        if activityVC.responds(to: #selector(getter: UIViewController.popoverPresentationController)) {
            activityVC.popoverPresentationController?.sourceView = vc.view
        }
    }
    vc.present(activityVC, animated: true, completion: nil)
}

3

स्विफ्ट:

    let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)

    //if iPhone
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone) {
        self.presentViewController(activityViewController, animated: true, completion: nil)
    } else { //if iPad
        // Change Rect to position Popover
        var popoverCntlr = UIPopoverController(contentViewController: activityViewController)
        popoverCntlr.presentPopoverFromRect(CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0), inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)

    }

2

उद्देश्य-सी के लिए समाधान और उपयोग UIPopoverPresentationController के साथ

    UIActivityViewController *controller = /*Init your Controller*/;
    //if iPhone
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        [self presentViewController:controller animated:YES completion:nil];
    }
    //if iPad
    else {
        UIPopoverPresentationController* popOver = controller.popoverPresentationController
        if(popOver){
            popOver.sourceView = controller.view;
            popOver.sourceRect = CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0);
            [self presentViewController:controller animated:YES completion:nil];
        }
    }

1

मैंने अगले कोड की कोशिश की और यह काम करता है:

पहले अपने व्यू कंट्रोलर में एक बार बटन आइटम डालें फिर एक IBOutlet बनाएं:

@property(weak,nonatomic)IBOutlet UIBarButtonItem *barButtonItem;

.m फ़ाइल के आगे: yourUIActivityViewController.popoverPresentationController.barButtonItem = self.barButtonItem;


1

स्विफ्ट = ios7 / ios8

let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)

//if iPhone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone) {
    // go on..
} else {
    //if iPad
    if activityViewController.respondsToSelector(Selector("popoverPresentationController")) {
        // on iOS8
        activityViewController.popoverPresentationController!.barButtonItem = self.shareButtonItem;
    }
}
self.presentViewController(activityViewController, animated: true, completion: nil)

0

मुझे यह समाधान मिला सबसे पहले, आपके दृश्य नियंत्रक जो पॉपओवर प्रस्तुत कर रहे हैं, को लागू करना चाहिए <UIPopoverPresentationControllerDelegate> प्रोटोकॉल ।

अगला, आपको सेट करना होगा popoverPresentationController प्रतिनिधि ।

इन कार्यों को जोड़ें:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Assuming you've hooked this all up in a Storyboard with a popover presentation style
    if ([segue.identifier isEqualToString:@"showPopover"]) {
        UINavigationController *destNav = segue.destinationViewController;
        PopoverContentsViewController *vc = destNav.viewControllers.firstObject;

        // This is the important part
        UIPopoverPresentationController *popPC = destNav.popoverPresentationController;
        popPC.delegate = self;
    }
}

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController: (UIPresentationController *)controller {
    return UIModalPresentationNone;
}

0

Iphone और ipad में काम कर रहे 4 निम्नलिखित कोड को स्विफ्ट में। प्रलेखन के अनुसार

दिए गए डिवाइस मुहावरे के लिए उपयुक्त साधनों का उपयोग करके दृश्य नियंत्रक को प्रस्तुत करना और खारिज करना आपकी जिम्मेदारी है। IPad पर, आपको पॉपओवर में व्यू कंट्रोलर को प्रस्तुत करना होगा। अन्य उपकरणों पर, आपको इसे औपचारिक रूप से प्रस्तुत करना होगा।

 let activityViewController = UIActivityViewController(activityItems: activityitems, applicationActivities: nil)

    if UIDevice.current.userInterfaceIdiom == .pad {

        if activityViewController.responds(to: #selector(getter: UIViewController.popoverPresentationController)) {
            activityViewController.popoverPresentationController?.sourceView = self.view
        }
    }

    self.present(activityViewController, animated: true, completion: nil)

0

Im स्विफ्ट 5 का उपयोग करना। आईपैड पर अपने ऐप में "शेयर बटन" पर क्लिक करने पर मेरे पास दुर्घटनाग्रस्त होने का एक ही मुद्दा था। इसका हल मिल गया। चरण 1: Main.storyboard में "दृश्य" ऑब्जेक्ट (ऑब्जेक्ट लाइब्रेरी में "UIView" जोड़ें)। चरण 2: ViewController.swift में एक @IBOutlet बनाएं और कोई भी नाम निर्दिष्ट करें (जैसे: view1)

चरण 3: उपरोक्त नाम जोड़ें (जैसे: view1) sourceView के रूप में। यह मेरी "शेयर बटन" क्रिया है।

@IBAction func Share(_ sender: Any) {
    let activityVC = UIActivityViewController(activityItems: ["www.google.com"], applicationActivities: nil)
    activityVC.popoverPresentationController?.sourceView = view1

    self.present(activityVC, animated: true, completion: nil)


}

मैं स्विफ्ट में बहुत नया हूं और एक हफ्ते से इस पर अटका हुआ था। आशा है कि यह किसी की मदद करेगा। इसलिए इस समाधान को साझा करना।


धन्यवाद यह काम किया!
Jnguyen22

-1

स्विफ्ट 2.0 के लिए। मैंने पाया कि यह काम करता है अगर आप iPad पर एक शेयर बटन को पॉपओवर को एंकर करने की कोशिश कर रहे हैं। यह मानता है कि आपने अपने टूल बार में शेयर बटन के लिए एक आउटलेट बनाया है।

func share(sender: AnyObject) {
    let firstActivityItem = "test"

    let activityViewController = UIActivityViewController(activityItems: [firstActivityItem], applicationActivities: nil)

    if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone {
        self.presentViewController(activityViewController, animated: true, completion: nil)
    }
    else {            
        if activityViewController.respondsToSelector("popoverPresentationController") {
            activityViewController.popoverPresentationController!.barButtonItem = sender as? UIBarButtonItem
            self.presentViewController(activityViewController, animated: true, completion: nil)
        }

    }
}

-5

सावधान रहें यदि आप स्विफ्ट का उपयोग करके iPad के लिए विकसित कर रहे हैं, तो यह डिबग में ठीक काम करेगा, लेकिन रिलीज में दुर्घटनाग्रस्त हो जाएगा। टेस्टफलाइट और ऐपस्टोर के साथ इसे काम करने के -noneलिए, रिलीज के लिए स्विफ्ट का उपयोग करके अनुकूलन को अक्षम करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.