【问题标题】:Navigation Bar move up while pop animation of Navigation Controller导航控制器弹出动画时导航栏向上移动
【发布时间】:2016-05-14 16:02:43
【问题描述】:

在我的根视图中,我创建了一个导航控制器并将其添加到状态栏下方 20 像素处。

我的导航视图控制器

状态栏显示正常。

当我点击返回时,(屏幕截图的冻结动画)。

动画发生时视图向上移动。和 完成后,状态栏会重新出现。

代码:这就是我将导航控制器添加到我的 VC 的方式

在根视图中:

navController = [[UINavigationController alloc]initWithRootViewController:myView];

navController.navigationBar.translucent = YES;
navController.view.autoresizingMask = UIViewAutoresizingNone;

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    CGRect frame=navController.view.frame;

    frame.origin.y += 20;
    frame.size.height-=20;
    navController.view.frame=frame;
}

【问题讨论】:

    标签: ios objective-c uiview uinavigationcontroller uinavigationbar


    【解决方案1】:

    所以我相信这是你的问题

    frame.origin.y += 20;
    frame.size.height-=20;
    navController.view.frame=frame;
    

    每次加载视图时都会调用它。我相信,如果您多次前进和后退,您的窗户上的景色就会上升。是吗?如是。确保只调用一次。

    希望对你有帮助。

    【讨论】:

    • 谢谢。这是有道理的,但不,它只被调用一次。
    【解决方案2】:

    这个答案对我帮助很大。

    Push / Pop View Controller With Navigation Bar from View Controller Without Navigation Bar

    我用第一个 VC 添加我的导航控制器,它希望隐藏导航栏

    我在下面的 sn-p 中将其命名为 animated:NO。正确的用法必须是使用委托本身的动画 boolean

    在 VC1 中:应该隐藏导航栏

    我必须像下面这样隐藏导航栏。

    -(void)viewWillAppear:(BOOL)animated {
        // Hide the bar with animation how viewWillAppear is called
        [self.navigationController setNavigationBarHidden:YES animated:animated];
    }
    

    当我将 VC2 推送到 VC1 时,我需要重新启用导航栏。所以在 VC1 本身中,在消失期间我会执行以下操作。

    -(void)viewWillDisappear:(BOOL)animated{
        // Show the bar with animation how viewWillDisappear is called
        [self.navigationController setNavigationBarHidden:NO animated:animated];
    }
    

    在 VC2 中:应显示导航栏

    当我在 VC2 中按回时,我实际上不得不再次隐藏导航栏。所以,我在 viewWillDisappear 中这样做。

    -(void)viewWillDisappear:(BOOL)animated{
        // Hide the bar with animation how viewWillAppear is called
        [self.navigationController setNavigationBarHidden:YES animated:animated];
    }
    

    主键是animated:animated 而不是animated:NO .. 难以置信!

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多