1

当用户点击一个按钮时,我有一个 swift 的 iMessage 扩展,它在扩展的presentationStlye 中。一旦点击此按钮,它应该完全关闭视图或至少返回紧凑模式。我不确定出了什么问题。这是从我的按钮调用的 didTransition :

self.didTransition(to: MSMessagesAppPresentationStyle.compact)

和行动:

override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {

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

    }
}

但这不起作用。有谁知道我做错了什么?

4

3 回答 3

0

实际上调用的正确函数是:

requestPresentationStyle(MSMessagesAppPresentationStyle)

你可以在你的MSMessageAppViewController

self.requestPresentationStyle(.compact)

你不需要覆盖任何东西;)希望这会对你有所帮助!

注意:在这里查看文档: https ://developer.apple.com/reference/messages/msmessagesappviewcontroller

它会帮助你很多!

于 2016-11-02T00:38:12.850 回答
0

这些功能将有助于在 MSMessagesViewController 中从一种过渡状态移动到另一种过渡状态:-

requestPresentationStyle(.expanded)    
requestPresentationStyle(.compact)

上面的方法将调用 willTransition 和 didTransition:-

  override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {

//这里可以查看presentationStyle,根据需要移动Controller。IE

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

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

于 2016-11-16T17:58:49.000 回答
0

您还可以使用该dismiss()函数完全关闭展开的MSMessagesAppViewController内容。

请注意,这与dismiss(animated:)取消模态呈现的 vc 不同。文档在这里

于 2020-08-12T19:12:24.837 回答