在NavigationController中禁用后退按钮动画

时间:2014-05-03 16:41:16

标签: iphone objective-c xcode ios7

当我点击导航控制器中的后退按钮时,我试图禁用幻灯片动画。

所以我将 UINavigationController 子类化并执行以下操作:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    return [super popViewControllerAnimated:NO];
}

除了后退按钮本身仍然朝着导航控制器的中心动画外,它运作良好。

我希望我的后退按钮可以像iOS7中的日历应用一样淡出。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为动画可能来自UINavigationBars方法popNavigationItemAnimated,但我不确定如何禁用它。子类化与UINavigationController子类的工作方式不同,因为您无法告诉导出控制器实例化子类的实例。

相反,我认为你可以做的就是在调用super隐藏后退按钮之前在你的popViewController实现中。

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    UINavigationItem *topItem = self.navigationBar.topItem;
    //if this doesn't work you could try the leftBarButtons array to nil 
    topItem.hidesBackButton = YES;
    return [super popViewControllerAnimated:NO];
}