2016-11-21 4 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에서의 팝업 표시의 기본 표시 모드는 전체 화면을 사용하는 것입니다. 당신이 진정한 팝 오버를 원하는 경우에, 당신은 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 
} 
를 사용하여 팝 오버에 표시하는 뷰 컨트롤러를 얻을 수 있었다 반환해야합니다

그러나이 방법으로 제시 할 때 키보드로 텍스트 입력이 잘 작동하지 않으므로 전체 화면으로 표시하는 것이 더 좋을 수도 있습니다.