2014-10-07 6 views
5

Ben kadar ateş özel bir pay görünüm denetleyicisi nasıl anlamak gibi olamaz. Benim anlayış SLComposeServiceViewController sınıfı çok önceden sağlanan hizmet türleri Facebook ve Twitter gibi Barebones oluşturma görüntüsü geliştirici sağlamasıdır ve geliştirici kendi özelliklerini uygulamak zorundadır. Eğer durum buysa, ben tıpkı diğer VC gibi SLComposeServiceViewController init ve sunmak gerekmez mi? Benim anlayışnasıl başlaması ve özel bir SLComposeServiceViewController mevcut do?

+0

Bunu gerçekten sistem tarafından sağlananlara benzeyen bir görünüm sunmak için aldınız mı? – bdmontz

cevap

3

, sınıf işlevselliği için sınıflandırma olması gerektiği gibi görünüyor.

yapmak istiyorsanız dinamik

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

ve sonra

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

Ben de daha iyi özelleştirme için SLComposeSheetConfigurationItem içine kazmak düşünüyorum ama var sunmak çok basit alt sınıfı yapabiliriz

kendim yapmadım.

+0

Serin! Bunu deneyeceğim. Cevabını kabul edeyim, bana çok güzel görünüyor. Teşekkürler. –

İlgili konular