2013-04-16 16 views
5

Twitter'da kullanmak üzere bir SLComposeViewController getirmek için uygulağımda bir düğme var. Görünüm sunulduğunda doğru şekilde animasyonlar ve kaybolur. Kaybolduğunda mevcut görünümün arkasına gönderildiğini ve onu geri getirmenin hiçbir yolunun olmadığını buldum. Şimdiye kadar tüm görünümleri şans eseri kodda arka tarafa geri göndermeyi denedim. Bu davranış uygulamada herhangi bir seviyede Navigasyon Kontrolörüne görüldüğü için bunun gerçekleşmesi için uygulamamla ilgili temel bir sorun olduğunu hissediyorum. Aşağıda app Navigasyon Bar olmanın SLComposeViewController bir ekran görüntüsü, ben viewController görünümü benim noktası göstermek için 0.0f bir Alfa değeri yaptı:SLComposeViewController Görünümler uygulamaya geri gönderilir ve yanıt vermez hale gelir

enter image description here

Gerçekten ne olup bittiğini bilmiyorum burada ve herhangi bir yardım büyük takdir edilecektir. Ben SLComposeViewController sunmaya kullanıyorum kod oldukça standart ve ben başka bir uygulamada test ettik ve gayet iyi çalışıyor:

NSString *message = [NSString stringWithFormat:@"#%@", [twitterInfo objectForKey:@"hashtag"]]; 

if ([appDelegate isSocialAvailable]) { 
    // code to tweet with SLComposeViewController 
    SLComposeViewController *twitter = [[SLComposeViewController alloc] init]; 
    twitter = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
    [twitter setInitialText:[NSString stringWithFormat: @"%@", message]]; 
    [self presentViewController:twitter animated:YES completion:nil];   
} 
+0

bu kod mainThread çağrılır emin misin? Eğer bazı belirsiz şeyler ortaya çıkabilir. VC'yi kapatan herhangi bir kodunuz var mı? –

+0

Evet, ana iş parçacığı içinde, bu kodu aynı hatayla uygulamadaki NavigationController'ın Kökünde çalıştırmayı denedim. – SamRowley

+0

Yani [self.navigationController presentViewController: canlandırılmış: tamamlama:]; 'ya da çalışmıyor? –

cevap

1

Bunu gönderdiğiniz için teşekkürler, aynı şey oldu çünkü bir gradient efekti için pencereme bir CAShapeLayer ekliyordum. Gönderiniz, sorunun bu olduğunu anlamaya yardımcı oldu.

Bunun nedeni şu: Görünümün katmanını pencerenin alt katmanlarına ekledikleri için. 0 dizininde ekleyebilirim! Bu, beklediğiniz şeylerin aksine, onların görüşlerini, görüntüleme denetleyicisinin görüşüne bir alt görünüm olarak ekleyecekler.

Sadece insanların pencerelerine katman eklemediklerini düşünmüş olmalılar ve görünüm yığınınla rekabet etmediğinden emin olmak istiyorlar. Neden bunu 0 dizinine koyacaklar, sadece birinin birisinin -[CALayer insertLayer:layer atIndex:0] yaptıklarını varsaymak zorunda olması gerekir.

Emin değilim, ancak bunun herhangi bir modal denetim denetleyicisi ile ilgili olabileceğini tahmin ediyorum.

düzeltme

oldukça basittir:

[viewController presentViewController:facebookViewController 
          animated:YES 
          completion:^{ 
    facebookViewController.view.layer.zPosition = 1000; 
}]; 
+0

Cevabınız için teşekkürler, yolunuza yardım edebildiğime sevindim, değiştim, cevabınız benimkinden daha ayrıntılı olarak kabul edildi. – SamRowley

0

kusurlu bulduk Ben buna bir çözüm bulmak için olsam deliye bir hafta sonra

kimse bana söz olsaydı
UIImage *bottomOverlayImage = [UIImage imageNamed:@"bottom_overlay.png"]; 
CALayer *bottomOverlay = [CALayer layer]; 
bottomOverlay.frame = CGRectMake(0, self.window.frame.size.height - 9, bottomOverlayImage.size.width, bottomOverlayImage.size.height); 
bottomOverlay.contents = (id)bottomOverlayImage.CGImage; 
bottomOverlay.zPosition = 1; 
[self.window.layer addSublayer:bottomOverlay]; 

neden bu kod olur pisliği: köşeler var Resim ekleyerek yuvarlanır gibi app kod, tüm app köşelerini yuvarlamak için küçük bir hile, iyi görünüyor yapmak Gelecekte referans almak için gerçekten yararlı olacak Twitter Görünümü. Bu kod, uygulama temsilcisine yerleştirildi ve ilk yüklemede çalıştırıldı.

İlgili konular