2016-11-21 1 views
0

私は問題があります。それはSmoochのチャットUIを入れようとしていますが、これはiPhone 6sでは常にフルスクリーンモードで表示されます。誰か助けてくれますか?SmoochのチャットUIをポップオーバー内に配置するにはどうすればよいですか?

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 = "[email protected]" // 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に

おかげでチャットを提示しようとしている方法です!

答えて

2

iPhoneでのポップオーバーのデフォルト表示モードは、フルスクリーンを表示することです。あなたは真のポップオーバーをしたい場合は、私は、ビューコントローラは、このコード

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 
} 
を使用してポップオーバーで表示されるように取得することができた adaptivePresentationStyle(for:)メソッドを実装する必要があると .none

https://rbnsn.me/ios-8-popover-presentations

を返します

しかし、このように表示された場合、キーボードでのテキスト入力はうまくいかないので、全画面表示すると良いでしょう。

関連する問題