簡體   English   中英

如何正確解除帶完成處理程序的模態viewcontroller

[英]How to properly dismiss modal viewcontroller with completion handler

我有viewController1viewController2 ,它是modaly呈現的,我想在解雇第二個時使用完成處理程序,但我無法獲得實現。 我以為我必須編寫一個函數並將其放在那里:

viewController.dismissViewControllerAnimated(true, completion: funcToCall())

但后來我收到這個錯誤:

無法將類型'()'的值轉換為預期的參數類型'(() - > Void)?'

任何人都可以解釋我,我怎樣才能正確執行完成處理程序?

很簡單,將funcToCall()作為completion參數傳遞(重要說明 - 我在這里使用花括號):

viewController.dismissViewControllerAnimated(true, completion: { 
    funcToCall()
})

completion參數文檔:

解除視圖控制器后執行的塊。 該塊沒有返回值,不帶參數。 您可以為此參數指定nil。

只需刪除括號並將函數名稱作為參數傳遞,如下所示:

viewController.dismissViewControllerAnimated(true, completion: funcToCall)

只要函數funcToCalltype ()->Void就行,這就可以工作

func funcToCall() {  
    // do something
}

暫無
暫無

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

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