Я пробовал свое приложение на iOS 7.1, и я обнаружил, что фон панели вкладок несколько раз исчезает. Я смог отследить их; это происходит, когда:
- нажатие контроллера просмотра, расположенного внутри контроллера навигации (то есть внутри контроллера панели вкладок) с помощью
hidesBottomBarWhenPushed = YES
- представляет контроллер представления, а затем отклоняет его (т.е.
MFMailComposeViewController
)
Я создал пример приложения (использовал шаблон панели вкладок + добавленная кнопка для отображения контроллера вида и mapView, чтобы узнать, исчез ли панель), и проблема там.
Вот весь код для примера приложения, который я изменил:
#import "FirstViewController.h"
@import MessageUI;
@interface FirstViewController () <MFMailComposeViewControllerDelegate>
@end
@implementation FirstViewController
- (IBAction)presentVCButtonPressed:(id)sender {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
[mailer setSubject:@"Feedback for Routie"];
[mailer setToRecipients:@[@"[email protected]"]];
[self presentViewController:mailer animated:YES completion:nil];
}
}
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
Здесь вы можете загрузить весь образец проекта.
Теперь важно: это не влияет на iPhone 5, ни на симулятор. Проблема заключается в iPhone 4 и iPod Touch (последнее поколение на момент написания этой статьи).
Есть ли у вас одна проблема? Вы могли это исправить? Спасибо!
Обновление: я нашел обходное решение. См. Мой ответ ниже.