簡體   English   中英

無法使用parentViewController(Swift)關閉viewController

[英]Can't dismiss viewController using parentViewController (Swift)

我試圖像這樣關閉視圖控制器:

func cropViewController(cropViewController: TOCropViewController!, didFinishCancelled cancelled: Bool) {

        if let vc = cropViewController.parentViewController {
            print("has controller")
            vc.dismissViewControllerAnimated(true, completion: nil)
        }

    }

TOCropViewController是UIViewController的子類。 有時我從self呈現,有時從picker (UIImagePicker控制器)呈現。 我試圖通過訪問父項來消除它,但是if語句中的任何代碼都沒有執行。 似乎找不到控制器。 有什么想法我可能在這里做錯了嗎? 任何幫助將非常感激! 謝謝!

演示的視圖控制器沒有父級,它有一個演示者。 這可能會造成混淆。

您可以將dismissViewControllerAnimated(_:completion:)發送到所呈現的視圖控制器,以使其自行關閉:

如果您在呈現的視圖控制器本身上調用此方法,則UIKit會要求呈現的視圖控制器處理關閉。

或者,您可以要求視圖控制器提供其呈現的視圖控制器,並要求演示者關閉呈現的內容:

    if let vc = cropViewController.presentingViewController {
        print("has presenter")
        vc.dismissViewControllerAnimated(true, completion: nil)
    }

暫無
暫無

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

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