为什么在从superView中删除subView后,UIViewController viewWillAppear才会运行

时间:2017-11-03 22:35:47

标签: ios objective-c viewwillappear subviews

我正在为这样的UIViewController做一个subLayer

- (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.capture.delegate = self;

    [self applyOrientation];
}

问题在于,当我删除subLayer时,我希望原始的Views viewWillAppear能够运行但不是。

我正在删除subLayer

[self.capture.layer removeFromSuperlayer];

当原始视图再次出现时,是否应该运行viewWillAppear?

如果不能,我怎样才能确保在删除subLayer时viewWillAppear中的代码会运行?

1 个答案:

答案 0 :(得分:0)

建议检查Apple doc以了解查看生命周期。 然后,您可以将viewWillAppear代码放在一个新方法中:

layoutIfNeeded

并在需要的地方拨打电话。

但是,也许,如果您只是需要更新布局,可以查看// myModel.js Student.prototype.getFullname = function () { return `${this.first_name} ${this.last_name}`; } // myRouter.js const rows = await Model.Student.findAll(); console.log(rows[0].getFullname()); // I can invoke function prototype here res.render('mypage', rows); // with express, render it to hbs 方法。