从相机跳转到另一个VC,导航栏遗失。

这是我的一个app中出现的bug,我今天终于找回这个迷路的导航栏,它再次回到我的怀抱。

Boos要求:从相机拍完一张照片之后,不要dismiss回当前VC,(因为如果dismiss回当前页面它回停留2秒,这样的视图效果特别丑)而是要立马跳转到另一个VC。于是我就对相机协议进行了这样的操作

直接用picker push到另一个VC (picker是继承导航的,所以可以直接push过去)

从相机跳转到另一个VC,导航栏遗失。_第1张图片
代码如下:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary*)info{

self.image1  = info[UIImagePickerControllerOriginalImage];

SelectViewController *selectVC = [[SelectViewController alloc]init];

selectVC.selectImage = self.image1;

[picker pushViewController:selectVC animated:NO];

}

跳转到另一个VC之后就出现了一个严重的bug,就是在另一个页面我的导航栏不见了。我试了很多的办法,都没有找回。最后在我的老师的帮助下,我找回了这个迷路的导航栏。在相机中,导航栏的状态是隐藏的。所以在你跳转过去之后的VC中你要解开导航栏的隐藏。我这里出现的问题是导航栏的位置上升了。

//    调试导航栏

NSLog(@"--------------123%@", self.navigationController.navigationBar);

self.navigationController.navigationBar.frame=CGRectMake(0, 0, ScreenW, 64);

//    重新布局一下

[self.navigationController.navigationBar setNeedsLayout];

self.navigationController.navigationBarHidden = NO;

NSLog(@"--------------12356%@", self.navigationController.navigationBar);


看到第一次打印出来的frame值,这个导航栏的位置上升了。所以我用代码重新写了他的frame值。然后重新布局了一下。遗失的导航栏就成功的被我找回了。

你可能感兴趣的:(从相机跳转到另一个VC,导航栏遗失。)