gpt4 book ai didi

iphone - 从另一个类 (MFMailComposeViewController) 呈现模态视图

转载 作者:行者123 更新时间:2023-12-01 19:21:12 25 4
gpt4 key购买 nike

我正在尝试创建一个负责使用 MFMailComposeViewController 发送电子邮件的类,这样我就可以从我的应用程序中的差异 View 控件中使用此方法。

这个类称为 apoio。

在这个类中有下面的方法。

-(void) enviarGraficoPorEmail: (NSData*) _pdfGrafico {

if (![MFMailComposeViewController canSendMail]) {
// show message box for user that SMS cannot be sent
} else {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Dashboard"];

[picker addAttachmentData:_pdfGrafico mimeType:@"application/pdf" fileName:@"grafico.pdf"];

NSString *emailBody = @"Anexando gráfico";
[picker setMessageBody:emailBody isHTML:NO];

[self presentModalViewController:picker animated:YES];
}
}

我有另一个 View Controller ,它在用户单击电子邮件按钮时调用 apoio 方法。就是下面这段代码
-(IBAction) enviarGraficoPorEmail {

Apoio *apoio = [[Apoio alloc] init];
[apoio enviarGraficoPorEmail:[barChart dataForPDFRepresentationOfLayer]];
}

但我不知道为什么,电子邮件 View 没有出现。该方法被称为正确的,因为我调试过等等。

如果我将代码从 apoio 方法复制到 enviarGraficoPorEmail 方法,则一切正常。

但我不想这样做,因为我会从其他 View Controller 发送电子邮件。

我究竟做错了什么 ??

最佳答案

你可以用几种不同的方式来做。

选项1:将调用 View Controller 作为参数传递给类方法

-(IBAction) enviarGraficoPorEmail {
Apoio *apoio = [[Apoio alloc] init];
[apoio enviarGraficoPorEmail:[barChart dataForPDFRepresentationOfLayer] callingController:self];
}

-(void) enviarGraficoPorEmail: (NSData*) _pdfGrafico callingController:(UIViewController*)_callingController {
...
[_callingController presentModalViewController:picker animated:YES];
...
}

选项 2:为调用 View Controller 添加类变量
-(IBAction) enviarGraficoPorEmail {
Apoio *apoio = [[Apoio alloc] init];
apoio.callingController = self;
[apoio enviarGraficoPorEmail:[barChart dataForPDFRepresentationOfLayer]];
}

-(void) enviarGraficoPorEmail: (NSData*) _pdfGrafico callingController:(UIViewController*)_callingController {
...
[callingController presentModalViewController:picker animated:YES];
...
}

然后你将callingController作为一个retain属性添加到你的类中,将它初始化为nil,然后在dealloc中释放它。

选项 #1 可能是满足您需求的更好方法。

关于iphone - 从另一个类 (MFMailComposeViewController) 呈现模态视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com