我正在使用自定义drawRect函数UINavigationBar在iOS4中跨我的应用程序进行绘制,它不使用图像,只使用CoreGraphics.
由于您无法UINavigationBar在iOS5中实现类别中的drawRect ,因此Apple建议使用子类UINavigationBar.
当属性是只读时,如何替换UINavigationBarmy子类UINavigationController(因此它将与iOS4和iOS5兼容)navigationBar?
@property(nonatomic, readonly) UINavigationBar *navigationBar
Run Code Online (Sandbox Code Playgroud)
我根本不在我的应用程序中使用XIB,因此添加UINavigationBar到NIB并通过InterfaceBuilder更改类不是一种选择.
iphone cocoa-touch uinavigationbar uinavigationcontroller ios
这非常有效:
UINavigationController *nc =
[[UINavigationController alloc]
initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:[UIToolbar class]];
nc.viewControllers = @[firstPage];
self.window.rootViewController = nc;
Run Code Online (Sandbox Code Playgroud)
但是这并不能正常工作:
UINavigationController *nc =
[[UINavigationController alloc]
initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:[UIToolbar class]];
self.window.rootViewController = nc;
self.window.rootViewController.viewControllers = @[firstPage]; // ERROR
Run Code Online (Sandbox Code Playgroud)
怎么会这样?谢谢