【问题标题】:UIImagePickerController in TabBarControllerTabBarController 中的 UIImagePickerController
【发布时间】:2013-02-21 18:53:42
【问题描述】:

我正在尝试在 UITabBarController 中实现 imagepickercontroller。到目前为止,一切都很好......

在我的 ViewController 中,我启动了 imagePickerController,然后将其放入我的 TabBarViewController 标签栏数组中,我实现了“loadview”方法:

- (void)loadView{
    self.arController = [[IFAugmentRealityController alloc] initWithViewController:self];
    [self showCamera];
    [self initOverlayController];
    self.picker.delegate = self;
    [self.view addSubview:self.picker.view];

}

- (void)initOverlayController {
    overlay = [[IFAROverlayView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
    overlay.delegate = self;    
}

- (void)showCamera {
    self.picker = [[UIImagePickerController alloc] init];
    self.picker.navigationBarHidden = YES;
    self.picker.toolbarHidden = YES;
    self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    self.picker.showsCameraControls = NO;
    self.picker.cameraViewTransform = CGAffineTransformScale(self.picker.cameraViewTransform, CAMERA_TRANSFORM_X, CAMERA_TRANSFORM_Y);
    self.picker.cameraOverlayView = overlay;
}

但是当我运行应用程序时,应用程序似乎在 loadView 方法中创建了一个 inifite 循环,并且标签栏不再反应。我错过了什么吗?

我不希望 ImagePickerController 全屏显示并使用“presentviewcontroller”方法推送,而是作为其中一个选项卡内的“正常”视图加载。

所以我的问题是:

1) 我应该使用“viewdidload”而不是“loadview”吗?因为使用 viewdidload 似乎可以正常工作

2) 但是在使用 viewdidload 时,我无法修复应该显示图像选择器的框架。视频屏幕下方和 tabBar 上方始终有一个黑条。

非常感谢!!

【问题讨论】:

  • 我认为当你在设置视图本身之前将-addSubview 消息发送到self.view 时,无限循环正在进入self.view = [[UIView alloc] initWithFrame:someFrame];,因为从技术上讲,在loadView 中你'重新应该设置视图控制器的视图。如果self.viewnil 并且您尝试向它发送消息,则再次调用-loadView
  • 但是视图不是已经在“showCamera”方法中初始化了吗,在添加子视图之前在“loadView”中加载?
  • 是的!现在我明白了!刚刚用 UIView 的拳头初始化了 self.view...完美地解决了我的问题!!谢谢
  • 太棒了!我会添加我的评论作为答案!

标签: ios uitabbarcontroller uiimagepickercontroller viewdidload loadview


【解决方案1】:

我认为当您在设置视图本身之前将-addSubview 消息发送到self.view 时会进入无限循环,因为从技术上讲,在loadView 中您应该设置视图控制器的视图。

如果self.viewnil,并且您尝试向其发送消息,则再次调用-loadView,从而导致无限循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多