有人知道如果我以编程方式实例化UINavigationBar
(没有IB),我如何使用UINavigationController
的自定义子类吗?
在IB中拖动一个UINavigationController
在导航栏下显示一个,并使用身份检查我可以更改类类型和设置我自己的UINavigationBar
的子类,但在编程上我不能,导航控制器的navigationBar
属性是只读的……
要以编程方式自定义导航栏,我应该怎么做?IB比"code“更”强大“吗?我相信在IB中可以做的所有事情也可以通过编程来完成。
发布于 2012-03-08 07:33:23
您不需要使用XIB,只需使用KVC即可。
[self.navigationController setValue:[[[CustomNavBar alloc]init] autorelease] forKeyPath:@"navigationBar"];
发布于 2012-09-21 16:48:43
自iOS5以来,apple提供了一种直接执行此操作的方法。Reference
UINavigationController *navigationController= [[UINavigationController alloc]initWithNavigationBarClass:[CustomNavBar class] toolbarClass:nil];
[navigationController setViewControllers:[NSArray arrayWithObject:yourRootViewController]];
发布于 2010-12-17 08:53:11
我使用“选项1”
创建一个仅包含UINavigationController的nib文件。并将UINavigationBar类设置为我的自定义类。
self.navigationController = [[[NSBundle mainBundle] loadNibNamed:@"navigationbar" owner:self options:nil] lastObject];
[navigationController pushViewController:rootViewController animated:YES];
https://stackoverflow.com/questions/1869331
复制相似问题