UIView框架问题

我有一个奇怪的问题。 我有两个视图控制器。 一个homeViewController和一个settingViewController。

homeViewController在settingViewController有没有导航栏。

现在的问题是,当我推settingViewController,并从它回来我homeViewController视图的高度变小。 (视图的高度 – 导航栏高度)

(不想手动调整帧)

// homeViewController -(void) settingButtonPressed { SettingsViewController *svc = [[SettingsViewController alloc] init]; [self.navigationController pushViewController:svc animated:YES]; } // settingViewController -(void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = NO; self.navigationController.navigationBar.barStyle = UIBarStyleDefault; self.navigationItem.hidesBackButton = NO; [UIApplication sharedApplication].statusBarHidden = YES; UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation; [self willAnimateRotationToInterfaceOrientation:statusBarOrientation duration:0.0]; } -(void) viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.navigationController.navigationBarHidden = YES; } 

请build议解决它的工作。

写在homeVC.m

 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = YES; } 

并在设置VC.M

 - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:(BOOL)animated]; self.navigationController.navigationBarHidden = YES; } 

而不是试图pipe理在视图中的导航栏的可见性将出现,并将消失个别视图控制器,尝试pipe理它在导航控制器的委托。

尝试设置ViewController的popup操作方法

 self.navigationController.navigationBarHidden = YES;