¿Cómo inicializa y presenta un SLComposeServiceViewController personalizado?

No puedo entender cómo get un controller de vista compartido personalizado encendido. Mi entendimiento es que la class SLComposeServiceViewController proporciona al desarrollador una vista de composition de barebones, al igual que los types de services ya proporcionados Facebook y Twitter, y el desarrollador tiene que implementar sus propias funciones. Si ese es el caso, ¿no debería iniciar el SLComposeServiceViewController como cualquier otro VC y presentarlo?

Solutions Collecting From Web of "¿Cómo inicializa y presenta un SLComposeServiceViewController personalizado?"

Según mi entendimiento, parece que la class debe ser subclasificada para la funcionalidad.

Podrías hacer una subclass muy simple si quieres hacerlo dynamic

enum ComposeServiceResult { case Cancel case Post } class ComposeServiceViewController: SLComposeServiceViewController { var completionHandler : ((result:ComposeServiceResult, text:String) -> Void)! override func didSelectCancel() { completionHandler(result: .Cancel, text: self.contentText) self.navigationController?.dismissViewControllerAnimated(true, completion: nil) } override func didSelectPost() { completionHandler(result: .Post, text: "") self.navigationController?.dismissViewControllerAnimated(true, completion: nil) } } 

y luego preséntalo

 var composeVC = ComposeServiceViewController() composeVC.title = "Facebook" composeVC.placeholder = "Add a caption!" composeVC.completionHandler = completionHandler composeVC.modalPresentationStyle = .OverCurrentContext; presentViewController(composeVC, animated: true, completion: nil) 

También creo que puedes profundizar en SLComposeSheetConfigurationItem para una mejor personalización, pero no lo he hecho yo mismo.