状态栏上方的标签栏控制器?

时间:2013-12-05 18:38:36

标签: objective-c ios7 mkmapview mapkit statusbar

我的标签视图控制器出了问题。我有3个部分,其中两个部分与状态栏配合良好。然而第三个没有。它没有按下标题,你可以看到顶部栏下面的状态栏!

任何帮助都会很棒。这是我的代表,我试图通过调整来完成这项工作 - 但没有什么对我有用。其他人有这个问题吗?

以下是问题的图片:

Status Bar Issue

这是我的委托方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];

    UINavigationController *navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
    TreasureLogViewController *treasureLogViewController = (TreasureLogViewController *)[[navigationController viewControllers] objectAtIndex:0];
    treasureLogViewController.managedObjectContext = self.managedObjectContext;

    navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:1];
    LocationsViewController *locationsViewController = (LocationsViewController *)[[navigationController viewControllers] objectAtIndex:0];
    locationsViewController.managedObjectContext = self.managedObjectContext;


    MapViewController *mapViewController = (MapViewController *)[[tabBarController viewControllers] objectAtIndex:2];
    mapViewController.managedObjectContext = self.managedObjectContext;

    return YES;
}

1 个答案:

答案 0 :(得分:1)

1。这就是你需要的: 的 Preventing the Status Bar from Covering Your Views

2。尝试navigationBar.translucent = NO;(默认为YES

来自 Apple's iOS7 TransitionGuide

  

iOS 7上的新行为。默认为YES。你可能强迫不透明   通过将属性设置为NO来设置背景。如果导航栏有一个   自定义背景图片,默认是从alpha推断出来的   图像的值为YES,如果它具有alpha <1的任何像素。 1.0如果你   发送setTranslucent:YES为具有不透明自定义背景的栏   它会将小于1.0的系统不透明度应用于图像。如果   您将setTranslucent:NO发送到具有半透明自定义的栏   背景图像它将为图像提供不透明的背景   使用bar的barTintColor(如果已定义),或使用黑色表示UIBarStyleBlack   如果barTintColor为零,则为UIBarStyleDefault或白色。

3。最后,如果其中任何一项无效,请查看 UIBarPositioningDelegate