UINavigationController 中的常量 UIBarButtonItem
Posted
技术标签:
【中文标题】UINavigationController 中的常量 UIBarButtonItem【英文标题】:Constant UIBarButtonItem in UINavigationController 【发布时间】:2012-11-21 02:22:49 【问题描述】:有什么方法可以让我拥有一个UINavigationController
并让它无论被推送多少次都始终显示相同的UIBarButtonItem
?
【问题讨论】:
【参考方案1】:试试这个-
-
创建
UINavigationController
的子类(CustomNavigationController
) 并使用它来推送您的视图控制器。
在CustomNavigationController
中,在init
或viewDidLoad
中创建UIBarButtonItem
。将target
和action
添加到其中。
在CustomNavigationController
中实现UINavigationControllerDelegate
委托,并将barButtonYouCreated
设置为委托方法中每个视图控制器的右栏或左栏按钮项。
使用
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
viewController.navigationItem.leftBarButtonItem = barButtonYouCreated;
或
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
【讨论】:
【参考方案2】:您可以在UINavigationController
中创建一个包含您的推送控制器的全局UITabBarController
,然后将您的推送控制器navigationbar
隐藏
【讨论】:
【参考方案3】:或者尝试使用 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];
【讨论】:
【参考方案4】:您可以使用UINavigationControllerDelegate
,如下:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
在此委托方法中,您可以检查是否将 barButtonItem 添加到导航栏。
【讨论】:
以上是关于UINavigationController 中的常量 UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章
(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换
UINavigationController 中的常量 UIBarButtonItem
UINavigationController 中的 setAlpha
UINavigationController:调整大小动画中的标题跳转