Some use AVCaptureControl problems

Set 3 controls to the AVCaptureSession and remove them all. The number of controls in the session is indeed 0, but the camera controls button still shows the previous 3 controls. If it is only 3->2 or 3->1, it can be modified normally, 3->0 is not OK, 0->3 is OK.

f (self.captureControl.zoom) {
            if (self.zoomScaleControl) {
                self.zoomScaleControl.enabled = false;
                [_session removeControl:self.zoomScaleControl];
            }
            
            AVCaptureSlider *zoomSlider = [self.captureControl.zoom fetchCaptureSlider];
            [zoomSlider setActionQueue:dispatch_get_main_queue() action:^(float zoomFactor) {
                @strongify(self);
                if ([self.dataOutputDelegate respondsToSelector:@selector(videoCaptureSession:tryChangeZoomScale:)]) {
                    [self.dataOutputDelegate videoCaptureSession:self tryChangeZoomScale:zoomFactor];
                }
            }];
            self.zoomScaleControl = zoomSlider;
        } else {
            if (self.zoomScaleControl) {
                self.zoomScaleControl.enabled = false;
                [_session removeControl:self.zoomScaleControl];
            }
            self.zoomScaleControl = nil;
        }
        
        if (self.captureControl.exposure) {
            if (self.exposureBiasControl) {
                self.exposureBiasControl.enabled = false;
                [_session removeControl:self.exposureBiasControl];
            }
            
            AVCaptureSlider *exposureSlider = [self.captureControl.exposure fetchCaptureSlider];
            [exposureSlider setActionQueue:dispatch_get_main_queue() action:^(float bias) {
                @strongify(self);
                if ([self.dataOutputDelegate respondsToSelector:@selector(videoCaptureSession:tryChangeExposureBias:)]) {
                    [self.dataOutputDelegate videoCaptureSession:self tryChangeExposureBias:bias];
                }
            }];
            self.exposureBiasControl = exposureSlider;
        } else {
            if (self.exposureBiasControl) {
                self.exposureBiasControl.enabled = false;
                [_session removeControl:self.exposureBiasControl];
            }
            self.exposureBiasControl = nil;
        }
        
        if (self.captureControl.len) {
            if (self.lenControl) {
                self.lenControl.enabled = false;
                [_session removeControl:self.lenControl];
            }
            
            ORLenCaptureControlCustomModel *len = self.captureControl.len;
            AVCaptureIndexPicker *picker = [len fetchCaptureSlider];
            [picker setActionQueue:dispatch_get_main_queue() action:^(NSInteger selectedIndex) {
                @strongify(self);
                if ([self.dataOutputDelegate respondsToSelector:@selector(videoCaptureSession:didChangeLenIndex:datas:)]) {
                    [self.dataOutputDelegate videoCaptureSession:self didChangeLenIndex:selectedIndex datas:self.captureControl.len.indexDatas];
                }
            }];
            self.lenControl = picker;
        } else {
            if (self.lenControl) {
                self.lenControl.enabled = false;
                [_session removeControl:self.lenControl];
            }
            self.lenControl = nil;
        }
        
        if ([_session canAddControl:self.zoomScaleControl]) {
            [_session addControl:self.zoomScaleControl];
        } else {
            self.zoomScaleControl = nil;
        }
        
        if ([_session canAddControl:self.lenControl]) {
            [_session addControl:self.lenControl];
        } else {
            self.lenControl = nil;
        }
        
        if ([_session canAddControl:self.exposureBiasControl]) {
            [_session addControl:self.exposureBiasControl];
        } else {
            self.exposureBiasControl = nil;
        }
        
        if (_session.controlsDelegate == nil) {
            [_session setControlsDelegate:self queue:GetCaptureControlQueue()];
        }
Some use AVCaptureControl problems
 
 
Q