2015-10-07 84 views
0

我有一个视图控制器,它使用pushViewController提出。这个方法向视图控制器提供了一个navigation bar,在左边有一个后退按钮(这是一个由苹果创建的可可方法)。如何覆盖由pushViewController创建的导航栏的功能

我希望后退按钮能够做它现在正在做的事情,但我也想用它的动画来调整一些事情。

如何添加在按下按钮和实际动画并返回之间起作用的代码?

谢谢。

回答

0

我加入我的自定义后退按钮这样做类似的东西:

UIImage *backArrow = [UIImage imageNamed:backButtonImage]; 
UIButton *aBackButton = [UIButton buttonWithType:UIButtonTypeSystem]; 
CGSize aBackButtonTextSize = [@"Back" sizeWithFont:[UIFont systemFontOfSize:17]]; 
aBackButton.frame = CGRectMake(0.0, 0.0, aBackButtonTextSize.width + backArrow.size.width, self.navigationController.navigationBar.frame.size.height); 
aBackButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; 
SEL backSelector = NSSelectorFromString(@"backAction"); 
[aBackButton addTarget:self action:backSelector forControlEvents:UIControlEventTouchUpInside]; 
[aBackButton setTitle:@"Back" forState:UIControlStateNormal]; 
[aBackButton setImage:backArrow forState:UIControlStateNormal]; 
[aBackButton setExclusiveTouch:YES]; 

aBackButton.titleLabel.font = [UIFont systemFontOfSize:17]; 

UIBarButtonItem *aLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aBackButton]; 
UIBarButtonItem *aNegativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
aNegativeSpacer.width = -8; 
self.navigationItem.leftBarButtonItems = @[aNegativeSpacer, aLeftBarButtonItem]; 

然后处理用户点击这里加入我自己的东西:

- (void)backAction { 
    // My own handlings 
} 
+0

的问题是,我不真正了解按下“原始”按钮时发生的情况,因此很难在新按钮中重新创建 –