簡體   English   中英

視圖控制器不會立即關閉並呈現新的視圖控制器

[英]View Controller won't dismiss and present new view controller immediately

一旦 QRCode 閱讀器被關閉,我就會嘗試呈現一個視圖控制器,但是當這樣做時,再次呈現 QRCode 閱讀器視圖控制器。 下面的代碼片段顯示了該方法以及我如何關閉視圖以及我如何嘗試呈現下一個視圖控制器。 當我嘗試呈現不同的控制器時,為什么 QR 閱讀器視圖控制器會不斷呈現自己的任何想法。

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

您必須在dismiss完成處理程序中調用present

func readerDidCancel(_ reader: QRCodeReaderViewController) {

    weak var presentingViewController = self.presentingViewController

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

如果這不起作用,則意味着您的呈現視圖控制器也以某種方式被刪除。 (被解雇/彈出?)

您不能在其他視圖控制器關閉時顯示視圖控制器,也不能在關閉視圖控制器時顯示。 你可以這樣做:

func readerDidCancel(_ reader: QRCodeReaderViewController) {
   let presenting = self.presentingViewController
   dismiss(animated: true, completion: {
      presenting?.present(ClockInOrOutViewController(), animated: true, completion: nil)
   }) 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM