2016-04-05 15 views
0

anlamaya çalışıyorum Aşağıdaki kod var:benim ViewControllers birinde TabBarDelegate

- (void)viewDidLoad 
{ 
    UITabBarController *tabBarController = (UITabBarController*)[UIApplication sharedApplication].keyWindow.rootViewController ; 
    [tabBarController setDelegate:self]; 
} 

ve:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController: (UIViewController*)viewController { 
    NSLog(@"Yup!"); 
} 

benim çok sekme kurulumunda sekmeler arasında geçiş zaman, konsol

tükürür

Evet

da beklendiği gibi. Ben AppDelegate.m en

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

'Evet' artık görünmüyor için

UITabBarController *tabController = (UITabBarController*)self.window.rootViewController; 
tabController.selectedIndex = 1; 

eklemek Ancak

.

Nasıl olur?

programlı Selectedındex ayarlarken

cevap

0

Uygulamayla kendisinden/değişim sekmeleri seçtiğinizde didSelectViewController arayacak, bu demeyeceksin

tabController.selectedIndex = 1;, varsayılan sekmeyi ayarlamak veya Selectedındex değiştirmek istediğiniz istediğinizde çoğunlukla yararlı olacak programlı

apple doc itibaren

:
- (void) TabBarController: (UITabBarController *) TabBarController didSelectViewController: (UIViewController *) viewController

yalnızca, sekme çubuğundaki kullanıcı musluklarına yanıt olarak çağrılır ve kodunuzun sekme çubuğu içeriklerinin program aracılığıyla değiştiğinde çağrılan değildir.

Böyle elle o yöntemini çağırarak deneyebilirsiniz:

- (void) selectedItemWithIndex:(int)value { 
    tabbar.selectedIndex = value; 
    [self tabBarController:tabbar didSelectViewController:tabbar.viewControllers.firstObject];//place you vc here by array or manually 
} 

Ref: https://stackoverflow.com/a/30700712/4557505 mantıklı ama ben beklenebilir

+0

Sekmeleri değiştirdiğinizde 'Evet' yine bir tekme olacağını – Sjakelien

+0

@Sjakelien cevabı güncelleştirdi – HardikDG

+0

AppDelegate'deki bir yöntemin başka işlevleri iptal etmesinin nedenini hala göremiyorum. Ve Swift'i yapmak için çok yaşlıyım. – Sjakelien

İlgili konular