2013-11-01 3 views
0

так что моя проблема, я имею сумасшедший листок действий, добавленный в твиттер и Facebook, которые отлично работают, но когда я добавил в композитор электронной почты, кажется, что приложение не может вернуться на исходный экран и остается в композиторе электронной почты.email-композитор не возвращается, когда я нажимаю отменить

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 

//Each button title we gave to our action sheet is given a tag starting with 0. 
if (buttonIndex == 0) { 

    //Check Twitter accessibility and at least one account is setup. 
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { 

     SLComposeViewController *tweetSheet =[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

     //This is setting the initial text for our share card. 
     [tweetSheet setInitialText:@"Switcher makes social networking easier, download it now from (LINK):D "]; 

     //Brings up the little share card with the test we have pre defind. 
     [self presentViewController:tweetSheet animated:YES completion:nil]; 

    } else { 
     //This alreat tells the user that they can't use built in socal interegration and why they can't. 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"You can't send a tweet right now, make sure you have logged into twitter aleady from your iphone settings." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alertView show]; 
    } 

}else if (buttonIndex == 1) { 

    //Check Facebook accessibility and at least one account is setup. 
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 

     SLComposeViewController *facebookSheet =[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

     //This is setting the initial text for our share card. 
     [facebookSheet setInitialText:@"Switcher makes social networking easier, download it now from (LINK) :D "]; 

     //Brings up the little share card with the test we have pre defind. 
     [self presentViewController:facebookSheet animated:YES completion:nil]; 

    } else { 
     //This alreat tells the user that they can't use built in socal interegration and why they can't. 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"You can't send a post right now, make sure you have logged into facebook aleady from your iphone settings" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alertView show]; 
    } 

}else if (buttonIndex == 2) { 

    MFMailComposeViewController *mailContoller = [[MFMailComposeViewController alloc]init]; 
    [mailContoller setMailComposeDelegate:self]; 
    NSString *email = @""; 
    NSArray *emailArray = [[NSArray alloc]initWithObjects:email,nil]; 
    NSString *message = @"hey download my application now"; 
    [mailContoller setMessageBody:message isHTML:NO]; 
    [mailContoller setToRecipients:emailArray]; 
    [mailContoller setSubject:@""]; 
    [self presentViewController:mailContoller animated:YES completion:nil]; 





} 

ответ

1

Вам необходимо реализовать метод MFMailComposeViewControllerDelegate. Вы должны отклонить композитор почты самостоятельно в этом методе.

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    [self dismissViewControllerAnimated:controller completion:nil]; 
} 
Смежные вопросы