1

一旦 QRCode 阅读器被关闭,我试图呈现一个视图控制器,但是当这样做时,QRCode 阅读器视图控制器会再次出现。下面的代码片段显示了方法以及我如何关闭视图以及我如何尝试呈现下一个视图控制器。关于为什么当我尝试呈现不同的控制器时 QR 阅读器视图控制器不断呈现自己的任何想法。

func readerDidCancel(_ reader: QRCodeReaderViewController) {
    dismiss(animated: true, completion: nil)
    present(ClockInOrOutViewController(), animated: true, completion: nil)
}
4

2 回答 2

1

您必须present调用. _dismiss

func readerDidCancel(_ reader: QRCodeReaderViewController) {

    weak var presentingViewController = self.presentingViewController

    self.dismiss(animated: true, completion: {
        presentingViewController?.present(ClockInOrOutViewController(), animated: true, completion: nil)
    })
}

如果这不起作用,则意味着您的呈现视图控制器也已以某种方式被删除。(解雇/弹出?)

于 2018-08-22T13:47:29.603 回答
0

您不能在其他视图控制器正在解散时呈现视图控制器,并且也不能在解散视图控制器时呈现。你可以这样做:

func readerDidCancel(_ reader: QRCodeReaderViewController) {
   let presenting = self.presentingViewController
   dismiss(animated: true, completion: {
      presenting?.present(ClockInOrOutViewController(), animated: true, completion: nil)
   }) 
}
于 2018-08-22T13:52:42.743 回答