Прежде всего, оцените вашу помощь в отношении нижеследующего запроса.
Я разрабатываю приложение для iPhone, в котором требуется, чтобы пользователь нажимал кнопку, и приложение должно вызывать панель электронной почты с тестом по умолчанию, а после того, как пользователь решает «отправить» или «отменить», приложение должно вызвать панель SMS.для действия пользователя «Отправить» или «Отмена»
Приложение выполняет слайд в окне электронной почты с текстом по умолчанию, и как только пользователь нажимает «Отправить» или «Отмена», поток программы возвращается к методу «didFinishWithResult», но позже в окне SMSне отображаетсяКогда я комментирую отправку почты и сразу перехожу на приложение SMS, отображается окно SMS.
Я полагаю, это потому, что когда запрос приложения на электронную почту запускается в другом потоке, а позже, когда поток возвращается обратно к методу didFinishWithResult, отправка SMS не работает.Я не уверен, как решить эту проблему ..
Пожалуйста, помогите
- (void) mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
// Notifies users about errors associated with the interface
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Result: Mail sending canceled");
break;
case MFMailComposeResultSaved:
NSLog(@"Result: Mail saved");
break;
case MFMailComposeResultSent:
NSLog(@"Result: Mail sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Result: Mail sending failed");
break;
default:
NSLog(@"Result: Mail not sent");
break;
}
[self showSMSPicker]; <<<<<====== call for SMS
[self dismissModalViewControllerAnimated:YES];
, после чего код корректно переходит к методу [self showSMSPicker].В методе showSMSPicker
-(void)showSMSPicker {
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if (messageClass != nil) {
// Check whether the current device is configured for sending SMS messages
if ([messageClass canSendText]) {
MFMessageComposeViewController *smsComposer = [[MFMessageComposeViewController alloc] init];
smsComposer.messageComposeDelegate = self;
if([MFMessageComposeViewController canSendText]) {
smsComposer.body = @"Sending SMS";
smsComposer.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil];
smsComposer.messageComposeDelegate = self;
[self presentModalViewController:smsComposer animated:YES];
}
[smsComposer release];
}
else {
NSLog( @"Device not configured to send SMS.");
}
}
else {
NSLog(@"Device not configured to send SMS.");
}
}