我可以完全免费添加一个 UIBarButtonItem IB 吗?

Posted

技术标签:

【中文标题】我可以完全免费添加一个 UIBarButtonItem IB 吗?【英文标题】:can I add a UIBarButtonItem completely IB free? 【发布时间】:2011-07-18 21:27:06 【问题描述】:

我在视图控制器中以编程方式创建了导航栏和标签。现在我想添加一个“完成”按钮,但似乎找不到不使用 IB 的方法....有什么方法可以做到吗?

这是我的视图控制器的 viewDidLoad:

//Adding navBar programmatically 
CGFloat width = self.view.frame.size.width;
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,width,52)];
navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:navBar];

//Adding label to navBar programmatically 
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10,2,width-20,14)];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
label.text = @"TITLE";
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:22];
label.shadowOffset = CGSizeMake(1,1);
label.textColor = [UIColor whiteColor];
label.textAlignment = UITextAlignmentCenter;
[navBar addSubview:label];

//Adding back button to navBar programmatically 
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(dismissView:)];
self.navigationItem.leftBarButtonItem = rightButton;   

最后一部分显然不起作用...

感谢您的帮助!

【问题讨论】:

也许你读过这篇 [post][1] :) [1]: ***.com/questions/6464920/… 也许你读过这篇 [post][1] :) [1]: ***.com/questions/6464920/… 他正在使用 uinavigationcontoller,我没有。这是一个不同的情况。谢谢。 【参考方案1】:

你为什么不改用UIToolBar

要将按钮添加到UINavigationBar,您需要创建一个UINavigationItem。如果您将UINavigationBar 用作UINavigationController 的一部分(通常情况下),这是自动完成的,作为独立视图,您必须自己执行此操作。

UINavigationItem *item = [[[UINavigationItem alloc] initWithTitle:@""] autorelease];
item.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissView:)] autorelease];
[navBar setItems:[NSArray arrayWithObject:item] animated:NO];

【讨论】:

谢谢,有帮助!同意工具栏 - 那么为什么 UINavigationBar 在那里呢?如果我们假设只将它与 uinavcontroller 一起使用,它会自动添加它怎么办......?再次感谢!【参考方案2】:

navigationItem 仅在您在导航控制器中推送视图控制器时使用

在你的情况下你需要使用

-pushNavigationItem:动画:

在 UINavigationBar 上

查看文档了解更多详情:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UINavigationBar_Class/Reference/UINavigationBar.html

【讨论】:

以上是关于我可以完全免费添加一个 UIBarButtonItem IB 吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSCoding 保存 TableView 单元格的重新排序

UIBarButtonItem 的 UIButton 扩展

为啥我应该使用 UIToolbar 与使用 UIView?

导航栏后退按钮箭头字体 Swift

向我的免费 G​​itHub 帐户添加协作者?

任何人都可以告诉我如何使用 ACF(免费版)在 WordPress 中添加动态英雄图像