2014-11-05 91 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; 
    } 
}