簡體   English   中英

關閉消息視圖控制器

[英]Dismiss Messages View Controller

我有一個 swift 的 iMessage 擴展,當用戶點擊一個按鈕時,它在擴展的 PresentationStlye 中。 一旦點擊此按鈕,它應該完全關閉視圖或至少返回到緊湊模式。 我不確定出了什么問題。 這是從我的按鈕調用的 didTransition:

self.didTransition(to: MSMessagesAppPresentationStyle.compact)

和行動:

override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {

    guard presentationStyle == .expanded else { return }
    self.dismiss(animated: true) {

    }
}

但這是行不通的。 有誰知道我做錯了什么?

實際上,要調用的正確 func 是:

requestPresentationStyle(MSMessagesAppPresentationStyle)

你可以在你的MSMessageAppViewController這樣稱呼它:

self.requestPresentationStyle(.compact)

你不需要覆蓋任何東西 ;) 希望這會對你有所幫助!

注意:查看此處的文檔: https : //developer.apple.com/reference/messages/msmessagesappviewcontroller

它會幫助你很多!

這些函數將有助於在 MSMessagesViewController 中從一種轉換狀態移動到另一種狀態:-

requestPresentationStyle(.expanded)    
requestPresentationStyle(.compact)

上面的方法將調用 willTransition 和 didTransition:-

  override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {

//這里我們可以檢查presentationStyle並根據需要移動Controller。

    let controller: UIViewController
    if presentationStyle == .compact {
        controller = instantiateCompactController()
    }
    else {
        controller = instantiateExpandController()
    }
    //and then Present Controller
    }

更多信息: https : //developer.apple.com/videos/play/wwdc2016/224/

您還可以使用dismiss()函數完全關閉擴展的MSMessagesAppViewController

請注意,這與dismiss(animated:) ,后者會關閉模態呈現的vc。 文檔在這里

暫無
暫無

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

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