1

我正在制作一个使用 iphone 相机来检测视频流亮度变化的应用程序。视频提要应该在导航控制器下的一系列视图的中间。在此视图上按下按钮时,用户应该会看到一个显示视频流平均亮度的视图。

我在让 UIImagePicker 以正确的方式显示时遇到了很多麻烦。我发现不可能将它输出到嵌套的 UIView - 相反,相机的覆盖应该设置为显示任何额外的功能。我需要这个叠加层成为我的导航控制器的一部分。

我里面有以下代码LuxMeterController

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (self.tst != YES) {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];

        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        picker.showsCameraControls = NO;
        picker.navigationBarHidden = YES;

        UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        LuxMeterController* vc = [sb instantiateViewControllerWithIdentifier:@"cameraVc"];
        vc.tst = YES;

        picker.cameraOverlayView = vc.view;
        [self presentModalViewController:picker animated:NO];
    }
}

所以首先,视图被加载——它初始化相机并将其显示为模态视图。相机的覆盖设置为第二个实例LuxViewController- 这不会将新相机渲染为tst == YES.

这种似乎有效 - 我有一个全屏视图作为其覆盖的视频源。

我的问题是,由于覆盖不是故事板中层次结构的一部分,它没有来自导航控制器的 UI 元素(标题栏、后退按钮等)。

如何让叠加层位于导航控制器内?或者这是错误的做法?如何让视频流位于导航控制器层次结构内,并具有可以移动到层次结构更下方的视图的覆盖按钮?

我只在很短的时间内进行了 Objective-c 和 iphone 开发,所以我可能会遗漏一些明显的东西。如果有更好的方法,我想知道它。

4

0 回答 0