【问题标题】:IOS:After returning back from UIImagePickerController layout became fullscreenIOS:从UIImagePickerController返回后布局变成全屏
【发布时间】:2016-08-12 11:55:11
【问题描述】:

我有一个类似图像的应用布局:

它有一个带有页眉、页脚和视图的 mainViewController。其他视图控制器加载到其他视图控制器视图中。 (因此所有其他 ViewController 的页眉和页脚都是固定的)。

问题:在我的一个视图控制器中,我像这样调用 UIImagePickerController:

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.mediaTypes =[UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];
// picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];

返回后我使用默认委托:

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


if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.image"])
{
    {
        //some code
    }
}
else if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.movie"])
{
  //some code
}

//   self.imageView.image = selectedImage;

[self dismissViewControllerAnimated:YES completion:nil];

}

从 UIImagePickerController 返回后,内部视图(其他视图控制器)变为全屏并位于页眉和页脚后面。

1) 我在返回后尝试调整视图大小。但不工作。 2)我尝试添加这些代码:

- (void)navigationController:(UINavigationController 

*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:YES];
}
-(BOOL)prefersStatusBarHidden   // iOS8 definitely needs this one. checked.
{
    return YES;
}

-(UIViewController *)childViewControllerForStatusBarHidden
{
    return nil;
}

它们都不起作用,请帮助。 任何帮助表示赞赏

----编辑----

也许这有帮助。 我使用以下代码在主视图控制器中显示其他视图控制器。 main_view 是页眉和页脚之间的视图。 并且新页面是控制器,而不是我在里面调用 UIpicker,它变成了全屏

 New_page *np = [[New_page alloc] initWithNibName:@"New_page" bundle:nil];
uicontroller=np;
[uicontroller.view setFrame:CGRectMake(0, 0, main_view.frame.size.width, main_view.frame.size.height)];
[main_view addSubview:uicontroller.view];

【问题讨论】:

  • 检查您的viewWillAppear 中是否有任何在解雇后被调用的内容。
  • 任何帮助。?防止视图变成全屏?

标签: ios objective-c uiimagepickercontroller objective-c-2.0


【解决方案1】:

我会尝试替换

[picker dismissViewControllerAnimated:YES completion:NULL];

 [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

简单的

 [self dismissViewControllerAnimated:YES completion:nil];

除非有理由两次我没有看到解雇?

无论如何,当前的视图控制器必须是关闭的视图控制器。所以和你写的一样

[self presentViewController:picker animated:YES completion:NULL];

你应该写

[self dismissViewControllerAnimated:YES completion:nil];

那还不如修复它

【讨论】:

  • 首先我在另一个视图控制器本身中使用了 UIImagePickerController,我只调用了 [picker dismissViewControllerAnimated:YES completion:NULL]; (但没有运气)然后我创建了一个临时视图控制器并在那个控制器上调用了选择器,所以我调用了 [picker dismissViewControllerAnimated:YES completion:NULL]; dissmis 选择器和 [self.presentingViewControllerdismissViewControllerAnimated:YES 完成:nil];取消临时视图控制器,他们都没有工作
  • 我使用了 [self presentViewController:picker animated:YES completion:NULL];提交 uipicker 和 [self dismissViewControllerAnimated:YES completion:nil];关闭 UIcontroller。但它仍然变成了全屏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
相关资源
最近更新 更多