我在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
您可以在这里下载整个sample project。
现在,重要的是:这似乎不会影响iPhone 5,也不会影响模拟器。问题出在iPhone 4和iPod Touch上(写这篇文章的最后一代)。
你们有没有同样的问题?你能解决它吗? 谢谢!
更新:我找到了解决方法。请参阅下面的答案。
答案 0 :(得分:0)
已经有一段时间了,所以我会重新讨论这个问题。 iOS 7(在设备上)选项卡栏在设备上变得完全透明,但在模拟器上工作正常。似乎从已启用Back
的详细信息页面点击hidesBottomBarWhenPushed
后发生。
设置Tab Bar Controller
&gt; Tab Bar
&gt; Background
中的White Color
到Storyboard
为我修复了它。此修复程序可保持半透明度。
出于某种原因,在tabBar.translucent
中关闭ViewDidAppear
然后再次切换不适合我。
在Swift中使用Xcode 6.3.1。
答案 1 :(得分:-1)
进入您的Main.storyboard并选择您的MKMapView以突出显示它(参见导航区域,您可以选择«Map View»)。然后仔细看看底部的“白色方块”:将它向上移动到底部吧! 在尺寸检查器中,您可以检查放置“锚点”的位置或查看此视图的原点(参见项目的左上角)。这解释了为什么iphone 5的屏幕高度更高。