当我将UIViewController
从我之前的控制器推到屏幕时,它会动画更改。但是当它完成加载时,它会调整我的导航栏的大小,并且跳转过渡使它看起来很糟糕。我怎样才能解决这个问题?我所做的就是隐藏viewWillAppear
中控制器A中的导航栏,并在viewDidLoad
中的控制器B中显示它。
答案 0 :(得分:1)
好的解决了。在控制器B的viewDidLoad
(视图控制器I'推)中添加以下内容:
UINavigationBar *navigationBar = self.navigationController.navigationBar;
[navigationBar setBackgroundImage:[UIImage new]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[navigationBar setShadowImage:[UIImage new]];
然后在UIViewController
的XIB中,在导航栏上设置一个高度约束并将其设置为68(从测试实际线条似乎落在68到69之间)。光滑如丝。
编辑:如果有人有任何更好的想法,请添加它们。我必须修改此解决方案以进行屏幕旋转,因此它并不完美。
答案 1 :(得分:0)
您可以在控制器A 中完成所有操作:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}