首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在UINavigationController中以编程方式设置UINavigationBar的自定义子类

在UINavigationController中以编程方式设置UINavigationBar的自定义子类
EN

Stack Overflow用户
提问于 2009-12-09 03:37:17
回答 6查看 49.4K关注 0票数 92

有人知道如果我以编程方式实例化UINavigationBar (没有IB),我如何使用UINavigationController的自定义子类吗?

在IB中拖动一个UINavigationController在导航栏下显示一个,并使用身份检查我可以更改类类型和设置我自己的UINavigationBar的子类,但在编程上我不能,导航控制器的navigationBar属性是只读的……

要以编程方式自定义导航栏,我应该怎么做?IB比"code“更”强大“吗?我相信在IB中可以做的所有事情也可以通过编程来完成。

EN

回答 6

Stack Overflow用户

发布于 2012-03-08 07:33:23

您不需要使用XIB,只需使用KVC即可。

代码语言:javascript
复制
[self.navigationController setValue:[[[CustomNavBar alloc]init] autorelease] forKeyPath:@"navigationBar"];
票数 89
EN

Stack Overflow用户

发布于 2012-09-21 16:48:43

自iOS5以来,apple提供了一种直接执行此操作的方法。Reference

代码语言:javascript
复制
UINavigationController *navigationController= [[UINavigationController alloc]initWithNavigationBarClass:[CustomNavBar class] toolbarClass:nil];
[navigationController setViewControllers:[NSArray arrayWithObject:yourRootViewController]];
票数 66
EN

Stack Overflow用户

发布于 2010-12-17 08:53:11

我使用“选项1”

创建一个仅包含UINavigationController的nib文件。并将UINavigationBar类设置为我的自定义类。

代码语言:javascript
复制
self.navigationController = [[[NSBundle mainBundle] loadNibNamed:@"navigationbar" owner:self options:nil] lastObject];

[navigationController pushViewController:rootViewController animated:YES];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1869331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档