2016-11-01 10 views
1

У меня есть расширение iMessage в swift, которое находится в расширенном представлении. Когда пользователь нажимает кнопку. Как только эта кнопка нажата, она должна полностью отклонить представление или, по крайней мере, вернуться в компактный режим. Я не уверен, что не так. Здесь didTransition вызывается из моей кнопки:Dismiss Messages View Controller

self.didTransition(to: MSMessagesAppPresentationStyle.compact) 

и действие:

override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) { 

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

    } 
} 

Но это не работает. Кто-нибудь знает, что я делаю неправильно?

ответ

0

На самом деле право FUNC называть это то, что один:

requestPresentationStyle(MSMessagesAppPresentationStyle) 

Вы можете назвать это, как это в вашем MSMessageAppViewController:

self.requestPresentationStyle(.compact) 

Вам не нужно переопределить ничего;) Надеюсь, что это Вам поможет!

Примечание: посмотрите на документацию здесь: https://developer.apple.com/reference/messages/msmessagesappviewcontroller

Это поможет вам много!

0

Эти функции помогут перейти от одного состояния перехода к другому в MSMessagesViewController: -

requestPresentationStyle(.expanded)  
requestPresentationStyle(.compact) 

выше метода будет вызывать willTransition и didTransition: -

override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) { 

// Здесь мы можем проверить presentationStyle и перемещать контроллер в соответствии с потребностями.

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

Дополнительная информация: https://developer.apple.com/videos/play/wwdc2016/224/

Смежные вопросы