2014-11-05 89 views
0

我需要從TabBar單擊時設置ViewController的屬性。從UITabBar初始化UIViewController的屬性

我試圖做它didSelectViewController - 但ViewWillAppear完成後它被調用,一切都太遲了

我試着這樣做:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController 

viewController是發端tabBarIndex而不是目的地tabBarIndex

我該怎麼辦?

+0

發佈的所有代碼 – jcesarmobile 2014-11-05 15:57:08

+0

看我的自己的回答 – Boaz 2014-11-05 16:14:01

回答

0

代碼挖掘好以後,我發現了一種方法:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController 
{ 
    UINavigationController *nav = (UINavigationController *)viewController; 
    if ([[nav.viewControllers objectAtIndex:0] isKindOfClass:[DestinationViewController class]]) 
    { 
     DestinationViewController *vc = (DestinationViewController *)[nav.viewControllers objectAtIndex:0]; 
     vc.foo = 1; 
    } 

    return YES; 
} 
+0

是的,「應該選擇......」是要走的路。 – n00bProgrammer 2014-11-05 16:15:44

0

如果您正在使用的腳本,可以設置賽格瑞ID,然後:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:YOUR_SEGUE_ID]) { 
     YourViewController *controller = segue.destinationViewController; 
     controller.someProperty = someProperty; 
    } 
}