objective c - Mail Composer won't dismiss iOS -
मेरे पास ViewController बटन और बटन पर क्रिया है:
- (IBAction) clickMe : (आईडी) प्रेषक {MailHelper * सहायक = [[मेलहालर आवंट] init]; [सहायक सेटअलेडेटा: स्व]; } इसके अलावा, मेल मेलिंग के लिए सहायक वर्ग है (MailHelper.h):
#import & lt; फाउंडेशन / फाउंडेशन। एच & gt; #import & lt; UIKit / UIKit.h & gt; #import & lt; संदेशयूआई / संदेशयूआई एच एंड जीटी; @ इंटरफेस मेल हेल्पर: UIViewController & lt; MFMailComposeViewControllerDelegate & gt; @ प्रॉपर्टी एमएफ़मेल कॉम्पोझिव्यूकंट्रोलर * मेलव्यू; - (शून्य) सेटअलेडेटा: (UIViewController *) ctrl; @end और कार्यान्वयन (MailHelper.m):
- (शून्य) setAllData: (UIViewController *) Ctrl {mailView = [[MFMailComposeViewController alloc] इस में]; MailView.mailComposeDelegate = self; MailView.toRecipients = @ [@ "mail@email.com"]; [मेल दृश्य सेट करें विषय: @ "विषय"]; [Ctrl presentViewController: mailView एनिमेटेड: हाँ पूर्ण: शून्य]; } - (शून्य) mailComposeController: (MFMailComposeViewController *) नियंत्रक didFinishWithResult: (MFMailComposeResult) परिणाम त्रुटि: (NSError *) त्रुटि {[आत्म dismissViewControllerAnimated: हाँ पूरा होने: शून्य]; } मैं मेल संगीतकार खोल सकता हूं, लेकिन डाक भेजते समय, मसौदा को बचाने या मसौदा ऐप दुर्घटनाओं को हटाने के दौरान। कोई भी विचार?
MFMailComposeViewController अनुरोध को खारिज कर दिया जा करने के लिए है आप बुला रहे हैं स्वयं पर स्व परित्याग करने वाला तरीका टी MFMailComposeViewController प्रस्तुत कर रहा है। परिवर्तित करें:
- (शून्य) mailComposeController: (MFMailComposeViewController *) नियंत्रक didFinishWithResult: (MFMailComposeResult) परिणाम त्रुटि: (NSError *) त्रुटि {[आत्म dismissViewControllerAnimated: हाँ पूरा होने: शून्य]; } को
- (शून्य) mailComposeController: (MFMailComposeViewController *) नियंत्रक didFinishWithResult: (MFMailComposeResult) परिणाम त्रुटि: (NSError *) त्रुटि {[नियंत्रक खारिज ViewControllerAnimated: हाँ पूरा: शून्य]; } deallocation समस्या को ठीक करने के लिए निम्न जोड़ें:
& lt; objc / runtime.h & gt; आयात करें .m फ़ाइल में और स्वयं को नियंत्रक से संबद्ध किया जा सकता है:
स्थिर शून्य * मेलहल्परके और मेल हेल्परकी; - (शून्य) सेटअलेडेटा: (UIViewController *) ctrl {mailView = [[MFMailComposeViewController alloc] init]; MailView.mailComposeDelegate = self; Objc_setAssociatedObject (मेलव्यू, मेल हेल्परकी, स्वयं, ओबीजेसी_एएसएसओसीआईएटीएटीआईटीएन_एनएएनएटीओएमआईसी); ....} - (शून्य) mailComposeController: (MFMailComposeViewController *) नियंत्रक didFinishWithResult: (MFMailComposeResult) परिणाम त्रुटि: (NSError *) त्रुटि {[नियंत्रक dismissViewControllerAnimated: हाँ पूरा होने: शून्य]; objc_removeAssociatedObjects (नियंत्रक); } यह सुनिश्चित करेगा कि जब तक प्रस्तुतीकरण नियंत्रण आपके मेल सहायक को डिलोकेट नहीं करता है कीमत से कम कीमत पर लायक नहीं है लेकिन काम करना चाहिए।
Comments
Post a Comment