如何将项添加到UINavigationBar

时间:2011-05-25 17:20:55

标签: iphone objective-c

我是iPhone开发的新手。 我的应用程序基于UInavigationBar。 我想在我的一个xib中添加导航栏项,但在.xib中我只是模拟导航栏,所以我无法拖放项目。谢谢

3 个答案:

答案 0 :(得分:0)

您需要以编程方式添加导航栏按钮。你看,你的xib有一个在UINavigationController的内容视图中显示的视图。它是您的应用程序可以访问的UINavigationBar,它控制导航栏项目。正如您所指出的,您的xib只有一个导航栏的占位符,这对您来说非常方便,因此您可以在布局时正确调整视图大小。

在xib的UIViewController中,你可以添加一个视图相应的导航栏项目,其代码类似于

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
                                           initWithTitle:@"View" style:UIBarButtonItemStylePlain
                                           target:self
                                           action:@selector(viewControls:)] autorelease];

这有意义吗?

答案 1 :(得分:0)

为了能够将项目添加到UINavigationBar中,您需要先在视图中添加UINavigationBar,然后向其中添加项目。

您无法在模拟导航栏上拖放项目。如果您通过其他方式或代码添加导航栏,则可以使用模拟导航栏确保您可以正确估计视图大小。

答案 2 :(得分:0)

您应该使用UINavigationController进行基于导航的层次结构。这将照顾很多关于如何使导航按照您的意愿工作的细节。我还建议以编程方式设置所有内容。以下是你将如何做到这一点。

// Initial setup of navigation
YourViewController *yvc = [[YourViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:yvc];
[[self view] addSubview:[nav view]];

然后当你想要一个新的视图控制器(你通常看到的动画滑动)时,你就这样做了

// From inside 'YourViewController', 
// this is normally when the user touches a table view cell
NewViewController *nvc = [[NewViewController alloc] init];
[self.navigationController pushViewController:nvc];

如果您想更改标题或按钮,请执行此操作

// This is normally in viewDidLoad or something similar
[self.navigationItem setTitle:@"Hello World!"];
[self.navigationItem.rightBarButtonItem:/* A UIBarButtonItem */];