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

How do I resize height of UINavigationBar while allowing to set root view controller?

我想调整 UINavigationBar 的高度 我以前在这里遇到过几个问题,但我相信这与那些完全不同。

发现,我必须创建 UINavigationBar 的子类,并在其中更新它的高度。但是为了使用那个子类导航栏,我必须使用下面的 UINavigationController.

方法

这里是:

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

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

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

有没有其他方法可以实现调整导航栏高度的目标,并且我应该为其设置一个根视图控制器?

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

子类化 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