我在 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:@[@"support@routieapp.com"]];
[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(撰写本文时的最后一代)。
你们中有人有同样的问题吗?你能修好它吗?谢谢!
更新:我找到了解决方法。请看下面我的回答。