SLComposeServiceViewController

SLComposeServiceViewController

我似乎无法理解如何启动自定义共享 View Controller 。我的理解是,SLComposeServiceViewController类为开发人员提供了准系统的撰写 View ,就像已经提供的Facebook和Twitter服务类型一样,开发人员必须实现自己的功能。如果是这样,我是否应该像其他任何VC一样仅初始化SLComposeServiceViewController并显示它?

最佳答案

根据我的理解,该类似乎是为了功能而被子类化的。

如果想使其动态化,可以创建一个非常简单的子类

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)
    }
}

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

我还认为您可以深入研究SLComposeSheetConfigurationItem以获得更好的自定义,但是我自己还没有这样做。

关于ios - 如何初始化和呈现自定义SLComposeServiceViewController?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26226661/

10-14 23:10
查看更多