我似乎无法理解如何启动自定义共享视图控制器.我的理解是SLComposeServiceViewController类为开发人员提供了准系统组合视图,就像已经提供的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)
}
}
Run Code Online (Sandbox Code Playgroud)
然后呈现它
var composeVC = ComposeServiceViewController()
composeVC.title = "Facebook"
composeVC.placeholder = "Add a caption!"
composeVC.completionHandler = completionHandler
composeVC.modalPresentationStyle = .OverCurrentContext;
presentViewController(composeVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我还认为您可以深入研究 SLComposeSheetConfigurationItem 以获得更好的自定义,但我自己还没有这样做。
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |