将子视图推送到弹出堆栈的问题

时间:2017-11-03 10:30:13

标签: ios objective-c addsubview

我正在尝试添加一个需要在堆栈顶部显示的子层(UINaviationController),它显示正常,但是当我尝试解除视图时我无法使其正常工作,它要么解散了整个UINavigtioncontroller并杀死整个堆栈,它只是删除部分视图并在顶部留下黑屏。

我需要的是我的subView显示在堆栈顶部,并且能够在调用我的委托之后从堆栈中POP它

代码如下

在此处创建子视图

- (IBAction)transactionListViewCameraBtn_Pressed:(id)sender {

    if([NWTillHelper isDebug] == 1) {
        NSLog(@"%s entered", __PRETTY_FUNCTION__);
    }

    self.capture = [[ZXCapture alloc] init];
    self.capture.camera = self.capture.back;
    self.capture.focusMode = AVCaptureFocusModeContinuousAutoFocus;

    [self.view.layer addSublayer:self.capture.layer];


    [self.view bringSubviewToFront:self.scanRectView];
    [self.view bringSubviewToFront:self.decodedLabel];

    self.capture.delegate = self;

    [self applyOrientation];
}

这就是我试图用来再次关闭subView但没有一个工作

[self.view removeFromSuperview];
//[self dismissViewControllerAnimated:YES completion:nil];
//[[self navigationController] popViewControllerAnimated:YES];
//[self removeFromParentViewController];

我一定错过了什么但是什么?

1 个答案:

答案 0 :(得分:3)

您需要删除捕获图层并隐藏scanRectView

尝试以下代码:

self.scanRectView.hidden = YES;
[self.capture.layer removeFromSuperlayer];