iOS 在整个导航控制器中显示相同的 UIBarButton
Posted
技术标签:
【中文标题】iOS 在整个导航控制器中显示相同的 UIBarButton【英文标题】:iOS display same UIBarButton throughout Navigation Controller 【发布时间】:2013-11-17 06:09:05 【问题描述】:目前我想创建一些按钮并在所有导航控制器中使用它。假设是用于搜索的“搜索/聚焦”按钮,或“添加项目按钮”。这些应该在所有导航控制器中使用。
我试图通过互联网搜索,但仍然不知道如何去做。
【问题讨论】:
【参考方案1】:或者尝试使用 UINavigationController 类别,并自定义 back item,这样无论推送多少次,都只需为 navigationController 的 back item 设置相同的视图。比如:
@implementation UIViewController (CustomNavigation)
- (void)setLeftBarButtonItem:(UIButton*)leftview
UIBarButtonItem *customItem = [[[UIBarButtonItem alloc] initWithCustomView:leftview] autorelease];
self.navigationItem.leftBarButtonItem = customItem;
[(UIButton*)self.navigationItem.leftBarButtonItem.customView addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];
【讨论】:
【参考方案2】:我使用BaseViewController
作为UIViewController
的子类,并使用BaseViewController
类继承我的所有ViewController。
在viewDidLoad
中放置代码以将您的按钮添加到导航栏。
所有使用BaseViewController
继承的 ViewController 都会有你的按钮。
任何带有 navigationController 和 NavigationBar 的 UIViewController 都有自己的导航按钮,你必须每次都覆盖它。继承你做一次。
@interface BaseViewController : UIViewController
@end
@implementation BaseViewController
- (void)viewDidLoad
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customView];
@end
【讨论】:
以上是关于iOS 在整个导航控制器中显示相同的 UIBarButton的主要内容,如果未能解决你的问题,请参考以下文章