0
我在app delegate方法的'navigationController willShowViewController'方法中设置了我的后退按钮。它被添加为显示中的viewcontroller的左栏按钮,如下面的代码所示。如何覆盖navigationItem.leftBarButtonItem
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (viewController != [navigationController.viewControllers objectAtIndex:0]) {
CustomNavButton *customBackButton = [[CustomNavButton alloc]initWithBackButtonAndFrame:CGRectMake(0, 0, 52, 33)];
customBackButton.navcon = navigationController;
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc]initWithCustomView:customBackButton];
viewController.navigationItem.leftBarButtonItem = newBackButton;
[newBackButton release];
viewController.navigationItem.hidesBackButton = YES;
}
}
我试图覆盖另一个视图控制器中的左栏按钮,如下所示。但无济于事。
CustomNavButton *feedButton = [[CustomNavButton alloc]initWithTitle:@"Feed" andFrame:CGRectMake(0, 0, 50, 32)];
[feedButton.customNavButton addTarget:self action:@selector(showFeedPage) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftFeedButton = [[UIBarButtonItem alloc]initWithCustomView:feedButton];
qavc.navigationItem.leftBarButtonItem = leftFeedButton;
这似乎是的appdelegate方法总是在我的ViewController的代码,因此任何的变化在我的ViewController左边栏按钮将通过在应用程序的委托定义的后退按钮被替换后运行。
反正有这个吗?