关闭消息视图控制器
Dismiss Messages View Controller
我在 swift 中有一个 iMessage 扩展,当用户点击一个按钮时,它会在展开的 presentationStlye 中显示。点击此按钮后,它应该完全关闭视图或至少 return 进入紧凑模式。我不确定哪里出了问题。这是从我的按钮调用的 didTransition:
self.didTransition(to: MSMessagesAppPresentationStyle.compact)
和操作:
override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
guard presentationStyle == .expanded else { return }
self.dismiss(animated: true) {
}
}
但这不起作用。有谁知道我做错了什么?
实际上调用的正确函数是:
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
}
您还可以使用 dismiss()
函数完全关闭展开的 MSMessagesAppViewController
。
请注意,这与 dismiss(animated:)
不同,后者忽略模态呈现的 vc。 Docs here.
我在 swift 中有一个 iMessage 扩展,当用户点击一个按钮时,它会在展开的 presentationStlye 中显示。点击此按钮后,它应该完全关闭视图或至少 return 进入紧凑模式。我不确定哪里出了问题。这是从我的按钮调用的 didTransition:
self.didTransition(to: MSMessagesAppPresentationStyle.compact)
和操作:
override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
guard presentationStyle == .expanded else { return }
self.dismiss(animated: true) {
}
}
但这不起作用。有谁知道我做错了什么?
实际上调用的正确函数是:
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
}
您还可以使用 dismiss()
函数完全关闭展开的 MSMessagesAppViewController
。
请注意,这与 dismiss(animated:)
不同,后者忽略模态呈现的 vc。 Docs here.