Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
1.3k kez görüntülendi
ios development kategorisinde tarafından
tarafından düzenlendi
Uygulamamdaki bir ViewController'de yer alan paylaş butonuna dokunulunca özel bir ShareViewController açılıyor ve facebook, twetter vs butonlar gözüküyor. Bu butonlardan herhangi birine dokunulunca, açılan bu ShareViewController'in dismiss olmasını istiyorum. Bunun için de aşağıdaki kodu*  kullanıyorum.

Ancak dokunulan ve presentViewController ile açılacak olan pencere de dismiss oluyor. Sadece ShareViewController'ün dismiss olup açılacak social ekranın görünmesini nasıl sağlayabilirim?

* dismissViewControllerAnimated(true, completion: nil)
 
ShareViewController içinde yer alan örnek paylaşım butonlarından birinin kodları şu şekilde:

https://gist.github.com/burhanaksendir/5253d780c50f45b7910e

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

shareViewController'da paylaşım butonunua baıldığında öncelikle viewController'ı dismiss et ve completion block'un içerisinde SLComposeViewController'ı present et.

şöyle yani;

self.dismissViewControllerAnimated(true, completion: { () -> Void in
            if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook){
                var facebookSheet: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
                facebookSheet.setInitialText("Demo")
                self.presentViewController(facebookSheet, animated: true, completion: nil)

            }
        })
tarafından
tarafından düzenlendi
Tekrar merhaba,
addObserver  yaptıktan sonra nerede removeObserver yapmalıyız acaba ?

Ben şöyle düşündüm,   detailViewController'da:

override func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)
        NSNotificationCenter.defaultCenter().removeObserver(self, name: "facebookShareTrigerNotification", object: nil)
    }

yanlışsa düzeltin lütfen.
tarafından
+1
controller'lar için viewWillDisappear metodu içerisinde yapabilirsiniz.
tarafından
bir de merak ettiğim diğer konu ise şu:
@IBAction func facebookShare her dokunulduğunda sistem bir NSNotificationCenter.defaultCenter().addObserver mi oluşturacak yeniden ? Yoksa zaten var deyip es mi geçecek ?
tarafından
+1
hayır facebookShare aksiyonu içerisinde bir notification post ediyoruz NSNotificationCenter.defaultCenter().postNotificationName'i kullanarak.

NSNotificationCenter.defaultCenter().addObserver'ıysa
viewDidLoad metodu içerisine tanımlıyoruz zaten yani bir kere ekleniyor ve notification'ları dinlemeye başlıyor.
siz yeni bir notification post ettiğinizde addObserver'ı yeniden tanımlanması gibi bir durum söz konusu değil yani.
tarafından
Teşekkür ederim. Şimdi daha iyi anladım.
...