我有一个主页面的应用程序是一个隐藏的导航栏,当我从子页面用导航栏返回到这个主页面时,因为我设置隐藏在主页面中的导航方法: - (void)viewWillAppear,我发现一个黑盒子会出现动画,如何避免呢?非常感谢你!!!
For Swift3.0
在First ViewController中
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) self.navigationController?.setNavigationBarHidden(true, animated: true) }
在第二个ViewController中
func backButtonPressed() { self.navigationController?.setNavigationBarHidden(false, animated: false) self.navigationController?.popViewController(animated: true) }
好的,我找到了答案:
self.navigationController.view.backgroundColor = [UIColor redColor];
这可以解决问题,而不会破坏颜色,这可能导致导航控制器的颜色错误 .
只需将其设置为viewWillAppear中的动画:)
-(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; [self.navigationController setNavigationBarHidden:YES animated:YES]; }
如果你回到带有导航控制器的页面,将动画设置为NO
- (IBAction)backButtonClicked:(id)sender { [self.navigationController setNavigationBarHidden:NO animated:NO]; [self.navigationController popToRootViewControllerAnimated:YES]; }
可能这将有助于某人,如果它发生在tabbar控制器应用程序中,同时切换选项卡
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) if self.navigationController?.visibleViewController != self { self.navigationController?.setNavigationBarHidden(false, animated: true) } }
4 回答
For Swift3.0
在First ViewController中
在第二个ViewController中
好的,我找到了答案:
这可以解决问题,而不会破坏颜色,这可能导致导航控制器的颜色错误 .
只需将其设置为viewWillAppear中的动画:)
如果你回到带有导航控制器的页面,将动画设置为NO
可能这将有助于某人,如果它发生在tabbar控制器应用程序中,同时切换选项卡