当我推送和弹出UIViewControllers时,如何防止UINavigationBar动画?

时间:2013-04-23 09:24:34

标签: objective-c animation uinavigationcontroller uinavigationbar pushviewcontroller

我在UINavigationController中设置了自定义UINavigationBar。当从NavigationController推送和弹出新的viewcontrollers时,我想阻止NavigationBar动画化。通常,UINavigationBar在推送期间从右到左动画标题和后退按钮,在弹出期间从左到右动画。我想停止这个功能,保持NavigationBar或多或少静态。

我可以通过覆盖自定义UINavigationBar中的以下内容来阻止弹出动画:

-(UINavigationItem *)popNavigationItemAnimated:(BOOL)animated{
    return [super popNavigationItemAnimated:NO];
}

但是,如果我覆盖

- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated
每当我将新的viewcontroller推送到NavigationController时,UINavigationBar仍然会动画。

编辑:我仍然希望推送或弹出的viewController能够进行动画制作。只应该停止NavigationBar。

1 个答案:

答案 0 :(得分:0)

这对我有用 - 在UINavigationBar上覆盖此方法:

- (void)pushNavigationItem:(UINavigationItem *)item {
    NSMutableArray* items = [[self items] mutableCopy];
    [items addObject:item];
    self.items = items;
}