在xcode 6中构建旧应用程序时的布局问题

时间:2015-03-24 08:21:44

标签: ios objective-c iphone xcode xib

我正在对一个2年以上没有工作的旧应用程序进行一些更改。我在xCode 6中构建并运行了应用程序并获得了以下结果。

enter image description here

对于状态栏,我尝试以下操作:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
    {
        [self prefersStatusBarHidden];
        [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
    }
    else
    {
        // iOS 6
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    }
}

// Add this method
- (BOOL)prefersStatusBarHidden {
    return YES;
}

我也试图将View controller-based status bar appearance设为NO

有人可以帮我这个吗?我没有使用故事板,也没有计划使用这个应用程序。它都是分开的XIB文件。

提前致谢!

修改

添加此代码后:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.backgroundColor = [UIColor blackColor];
self.window.clipsToBounds =YES;
self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

我得到以下内容: enter image description here

我的标签栏是在appdelegate中的代码中创建的:

 self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:homeNavigation,bookNavigation,doctorsNavigation,settingsNavigation,locatorNavigation,nil];

    [self.window makeKeyAndVisible];

1 个答案:

答案 0 :(得分:0)

如果要在状态栏下面启动视图控制器(在viewDidLoad方法中编写此代码),请尝试此操作。

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
    self.edgesForExtendedLayout=UIRectEdgeNone;
}

如果您想隐藏状态栏,请按照此link

进行操作