2013-07-29 31 views
19

StoryBoard'u kullanarak UITabBarController'daki bazı sekmelere nasıl geçebilirim? Aşağıda ancak başarılı olamadı kodunu denedim (sekme seçili değilse): Seçili sekmeyi StoryBoard kullanarak UITabBarController'da nasıl ayarlayabilirim?

self.tabBar.selectedIndex = 3; 

Dürüst film şeridi olmadan ucu dosyaları kullanılır ve bu kod yukarıdaki

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions 
      :(NSDictionary *)launchOptions 

ince çalıştı ama şimdi can' sekmeyi programatik olarak ayarlayın. Belki de sekmeyi seçmeyecek başka bir sorun var. Sekmeleri nasıl değiştirebilirim?

+1

siz "başarı olmadan" demek:

seçme Kimlik Müfettiş sağ bölmede, storyboard adresinin Tab Bar Kontrolörü seçin ve bir özelliği eklemek? Derleyici hatası? Sekme seçilmiyor mu? – Stavash

+0

oh, teşekkürler çok önemli bir yorum. Evet sekme seçilmiyor. –

+0

SetSelected hakkında ne düşünüyorsunuz ... Bu gibi [self.tabBar setSelectedIndex: 3]; – Yanchi

cevap

27

sonra selectedViewController özelliğini ayarlayın UITabBarController senin örneğini tut:

yourTabBarController.selectedViewController=[yourTabBarController.viewControllers objectAtIndex:3];//or whichever index you want 
16

Alexander, senin sorunun sekme çubuğunun doğru örneğini elde ettiğini düşünüyorum. Sekme çubuğu kök görünümü denetleyicisi ise, o zaman didFinishLoading yöntemine eğer AppDelegate böyle yapabilirsiniz:

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
    [tabBar setSelectedIndex:3]; 

Bir deneyin ve bana sonucunu lütfen söyle. Bununla

+3

* Swift Comment - 18 ay sonra, Swift'i appDelegate'inizde yukarıda gösterildiği gibi dönüştürdüğünüzde, beklenen sonucu elde edersiniz. Swift çeviri: 'let tabBar: UITabBarController = self.window? .rootViewController as! UITabBarController' –

4

Bu da stroryboard çalışacak ...

[self.tabBarController setSelectedIndex:3];.h

içinde UITabBarControllerDelegate ekleyin ve sonra bu da kullanarak görsel senaryolar sadece elde edebilirsiniz bu delegate yöntemini

- (BOOL)tabBarController:(UITabBarController *)theTabBarController shouldSelectViewController:(UIViewController *)viewController 
{ 
    return (theTabBarController.selectedViewController != viewController); 
} 
2

kullanın. CatchBarController'dan ViewController (ler) inize Ctrl-sürükleyin ve 'İlişki Segue, Denetleyicileri Görüntüle'yi seçin. Seçtiğiniz ilk ViewController varsayılan/ilk ViewController olacaktır.

8

* Swift Comment - 18 ay sonra, AppDelegate uygulamasında Yanchi's çözümünü Swift'e dönüştürürseniz beklenen sonucu elde edersiniz. Swift çeviri: Ben LSwift yılında IBInspected kullanıyorum

let tabBar: UITabBarController = self.window?.rootViewController as! UITabBarController 

tabBar.selectedIndex = 1 
+4

Teşekkür ederim Space Monkey. Geminiz güvenle inebilir. –

+0

Teşekkürler günümü kurtardı. –

0

. Tam olarak ne demek istiyorsun,

 
Key Path : selectedIndex 
Type  : Number 
Value : 2 (whatever number you want) 
İlgili konular