转回前景

时间:2015-06-17 06:13:16

标签: ios objective-c iphone xcode uinavigationbar

我在viewWillAppear

的第一个ViewContoller中设置了导航栏
self.navigationController.navigationBar.frame = CGRectMake(0.0, 64.0, self.navigationController.view.bounds.size.width, 44.0);

它让我在吧台上面放了一个标志。

但是当我将应用程序转到背景并转回时,导航栏位置会重置为顶部。

我尝试了捕获UIApplicationWillEnterForegroundNotification的addObserver并再次设置导航栏的框架。但它不起作用。

请帮忙, 非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试更改NavigationBar的外观,它会反映整个应用

[[UINavigationBar appearance] setFrame:];

您可以根据需要更改其背景图片

[[UINavigationBar appearance] setBackgroundImage:forBarMetrics:];

答案 1 :(得分:0)

我找到了解决方案。

  1. 子类UINavigationBar。

  2. 实施- (CGSize)sizeThatFits:(CGSize)size方法更改导航栏大小。

  3. ,例如

    - (CGSize)sizeThatFits:(CGSize)size {
        CGSize newSize = self.window.bounds.size ;
        newSize.height = 91;
        return newSize;
    }
    

    它完美无缺。