![](/img/trans.png)
[英]Smooch - Show Smooch UI inside a UIViewController container
[英]How do I put Smooch's chat UI within popover?
我有一个问题,那就是我正在尝试放置Smooch的聊天UI,但这始终在iPhone 6s中以全屏模式显示。 有人能帮我吗?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "popoverSegue" {
// Get the new view controller using segue.destinationViewController.
let popoverViewController: SmoochViewController = segue.destination as! SmoochViewController
//popoverViewController.newViewController = Smooch.newConversationViewController()
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.popover
popoverViewController.popoverPresentationController!.delegate = self
}
}
这就是我试图呈现显示聊天的SmoochViewController的方式。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// Adding some values to the user
SKTUser.current()!.firstName = "Kevin" // User's first name
SKTUser.current()!.lastName = "Bustillos Acurio" // User's lastname
SKTUser.current()!.email = "kevinbustillos21@hotmail.com" // User's email
SKTUser.current()!.signedUpAt = Date() // User's sign in date
let conversation: SKTConversation = Smooch.conversation()!
// Debugging messages (can be deleted)
for message in conversation.messages! {
print("MESSAGES \((message as! SKTMessage).text)")
}
let newViewController: UIViewController = Smooch.newConversationViewController()!
// Display Smooch UI (it displays the UI, the messages, avatars, all...)
Smooch.showConversation(from: newViewController)
// Just for debugging
print("USER ID \(SKTUser.current()!.userId)")
print("SMOOCH ID \(SKTUser.current()!.smoochId)")
print("CURRENT USER FIRST NAME: \(SKTUser.current()!.firstName)")
print("CURRENT USER LASTNAME: \(SKTUser.current()!.lastName)")
print("CURRENT USER EMAIL: \(SKTUser.current()!.email)")
print("CURRENT USER DATE: \(SKTUser.current()!.signedUpAt)")
}
这就是我试图在另一个UIViewController中呈现聊天的方式
谢谢!
iPhone上的弹出窗口的默认显示模式是全屏显示。 如果您想要一个真正的Popover,则需要实现adaptivePresentationStyle(for:)
方法并返回.none
https://rbnsn.me/ios-8-popover-presentations
我能够使用此代码使视图控制器出现在弹出窗口中
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let newViewController: UIViewController = Smooch.newConversationViewController()!
newViewController.modalPresentationStyle = .popover
newViewController.popoverPresentationController!.delegate = self
newViewController.popoverPresentationController!.sourceView = self.view
self.present(newViewController, animated: true, completion: nil)
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
但是,以这种方式呈现时,文本输入不能很好地与键盘一起播放,因此毕竟以全屏显示可能更好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.