У меня есть UIAlertView, который запускает электронную почту и экран сообщений. Когда пользователь нажимает кнопку оповещения, открываются оба вида, но не закрываются.
Я попытался добавить:
-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
[self dismissModalViewControllerAnimated:YES];
}
к телу класса, однако, это не помогло.
Вот как представлено электронное письмо:
[viewController presentViewController:email animated:YES completion:nil];
Изменить Вот весь код, который я использую для представления электронного письма:
//send email...
-(void)sendEmail{
//mail composer
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if(mailClass != nil){
if([mailClass canSendMail]){
//get the current view controller from the App Delegate
apptester_appDelegate *appDelegate = (apptester_appDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *viewController = [appDelegate getViewController];
MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init];
email.mailComposeDelegate = self;
//navigation bar color depends on iOS7 or lower...
if(floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){
[[email navigationBar] setTintColor:[UIColor blackColor];
}else{
[[email navigationBar] setBarTintColor:[UIColor blackColor]];
}
//show the model view...
[viewController presentViewController:email animated:YES completion:nil];
}
}
}
Кто-нибудь еще испытал эту ошибку?
Это может быть неактуально, но в этом приложении есть панель вкладок.
setBarTintColor
или нет. Правильный способ:if ([[email navigationBar] respondsToSelector(@selector(setBarTintColor:)])
. - person rmaddy   schedule 17.03.2014