有什么方法可以让我拥有一个并且无论它被推送多少次UINavigationController
都始终显示相同?UIBarButtonItem
问问题
765 次
4 回答
1
尝试这个-
- 创建子类(
CustomNavigationController
)UINavigationController
并使用它来推送您的视图控制器。 - 在
CustomNavigationController
创建UIBarButtonItem
中init
或中viewDidLoad
。添加target
&action
到它。 - 在委托方法中为每个视图控制器实现
UINavigationControllerDelegate
委托CustomNavigationController
并设置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
于 2012-11-21T02:45:18.833 回答
0
或者尝试使用 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];
}
于 2012-11-21T04:14:38.690 回答
0
您可以使用UINavigationControllerDelegate
如下:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
在此委托方法中,您可以检查是否将 barButtonItem 添加到导航栏。
于 2012-11-21T03:18:15.547 回答
0
您可以创建一个包含您的推送控制器的全局,然后隐藏您的UITabBarController
推送控制器UINavigationController
navigationbar
于 2012-11-21T03:39:29.600 回答