如何在允许设置根视图控制器的同时调整UINavigationBar的高度?

时间:2015-07-04 07:08:42

标签: ios objective-c uinavigationcontroller resize uinavigationbar

我希望调整UINavigationBar的高度。我在此处遇到过几个问题,但我认为这与那些问题完全不同。

发现,我要创建UINavigationBar的子类,并在哪里更新它的高度。但是,然后使用该子类导航栏,我将使用UINavigationController下面的方法。

这是:

- (id) initWithNavigationBarClass:(nullable Class)navigationBarClass 
toolbarClass:(nullable Class)toolbarClass;

如果我用它来设置我的子类导航栏,那么如何使用以下方法设置其rootViewController

- (id) initWithRootViewController:(UIViewController *)rootViewController;

还有其他任何方式,我可以实现调整导航栏高度的目标,还应该设置一个根视图控制器吗?

2 个答案:

答案 0 :(得分:1)

子类化UINavigationBar可以做到这一点!

#import <UIKit/UIKit.h>

@interface BaseNavigationBar : UINavigationBar

@end

@implementation BaseNavigationBar
- (CGSize)sizeThatFits:(CGSize)size {return CGSizeMake(self.superview.bounds.size.width, 24.f);}
@end

答案 1 :(得分:0)

documentation中,他们说属性viewControllers返回一个在索引0处包含根视图控制器的数组。
我认为如果你在这个属性传递一个VC数组,那么索引为零的对象将被视为根。或者只是一个元素数组。