首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何初始化和显示自定义SLComposeServiceViewController?

如何初始化和显示自定义SLComposeServiceViewController?
EN

Stack Overflow用户
提问于 2014-10-07 00:06:27
回答 1查看 1.4K关注 0票数 6

我似乎无法理解如何启动自定义共享视图控制器。我的理解是,SLComposeServiceViewController类为开发人员提供了一个基本的组合视图,就像已经提供的服务类型Facebook和Twitter一样,开发人员必须实现自己的功能。如果是这样的话,我是不是应该像任何其他VC一样在SLComposeServiceViewController中加入并呈现出来呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-17 23:58:20

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

如果您想使它成为动态的,可以创建一个非常简单的子类。

代码语言:javascript
运行
复制
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)
    }
}

然后呈现出来

代码语言:javascript
运行
复制
var composeVC = ComposeServiceViewController()
composeVC.title = "Facebook"
composeVC.placeholder = "Add a caption!"
composeVC.completionHandler = completionHandler
composeVC.modalPresentationStyle = .OverCurrentContext;
presentViewController(composeVC, animated: true, completion: nil)

我也认为您可以深入到SLComposeSheetConfigurationItem以获得更好的定制,但我自己还没有这样做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26226661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档