2014-12-05 29 views
5

(toplama görünümü) bu benim prepareforsegue kodudur. Doğru şekilde geri döner. Ben olsun ben (println zaman selectedIndexPassingForDisplay VC3 olarak), AncakSwift sekme çubuğu görünümü prepareforsegue

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    var segue = segue.destinationViewController as PlayerFromRosterViewController 
    segue.selectedIndexPassingForDisplay = 1 
} 

(PlayerFromRosterViewController): Ve sonra, VC2 doğrultusunda, bu prepareforsegue sekme çubuğunda gerçek görünümü denetleyicisi veya ilk düğmeye almak için çağrı sıfırdır. Neden Tab Bar gezgini denetleyicisinden VC3'e, AKA ilk sekme çubuğu düğmesi görünümüne geçmiyorsunuz.

cevap

18

TabBarController'ınızdaki prepareForSegue'un aranıp aranmadığını kontrol ettiniz mi?

UITabBarController ve onun çocukları denetleyicileri görüntüleme arasındaki bağlantı bir storyboard segue olmadığı için asla çağrılmayacaktı. UITabBarController'dan viewController'a, istediğiniz dizinde viewControllers koleksiyonuna erişerek doğrudan bir referans almalısınız.

var tabBarController = segue.destination as UITabBarController 
var destinationViewController = tabBarController.viewControllers[0] as YourViewController // or whatever tab index you're trying to access 
destination.property = "some value" 
+1

gotcha ... Bunu gerçekten hızlı bir şekilde nasıl yapacağınızı gösterir misiniz? Sadece örnek bir kod satırı harika olurdu. Teşekkürler! –

+1

Teşekkürler! Şimdi anlıyorum. –

+1

inanılmaz bir şekilde, "gerçek" bir segue olmadığını düşünmezdim. Beni ikinci bir saat girişimi kurtardın. Teşekkürler. – djdance

İlgili konular