推动视图控制器动画时,工具栏按钮闪烁(快速淡入)

时间:2013-03-23 15:03:54

标签: ios animation uinavigationcontroller uibutton uitoolbar

按下视图控制器时,我的工具栏按钮淡出,然后再次使用新视图。问题是我在下一个视图中有与前一个相同的按钮,因此看起来按钮在切换屏幕时会快速闪烁。我的问题是,如果可以通过在推送到新视图时禁用导航控制器的工具栏按钮淡出或者工具栏可以绑定到导航控制器以使其对所有视图都相同来避免这种情况。最后一个建议,因为我看到我的导航栏按钮在按下新屏幕时不会淡出。

3 个答案:

答案 0 :(得分:1)

我很惊讶没有人回答你。我刚刚遇到过这个问题,这是我找到的解决方案。

  1. 您的导航控制器的子类

  2. 覆盖推/弹方法

  3. -(UIViewController*)popViewControllerAnimated:(BOOL)animated
    {
        self.navigationBarHidden = YES;
        UIViewController *vc = [super popViewControllerAnimated:animated];
        self.navigationBarHidden = NO;
        return vc;
    }
    
    -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        self.navigationBarHidden = YES;
        [self pushViewController:viewController animated:animated];
        self.navigationBarHidden = NO;
    }
    

    它为我做了诀窍。

答案 1 :(得分:0)

我知道这个问题很旧,但有一个简单的解决方案:将控制器的导航项设置为相同的条形按钮项,它不会动画。例如:

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWith...];
viewController1.rightBarButtonItem = item;
viewController2.rightBarButtonItem = item;

如果您现在在显示viewController1后推送viewController2,导航项将不会设置动画。

答案 2 :(得分:0)

要在代码中构建工具栏,我认为它应该在ViewWillAppear生命周期方法中。我以前在代码中建立了一个工具栏,但是在ViewDidLoad中,我看到了这种快速淡入/淡出