2016-10-18 1 views
2

S'il vous plaît consulter mon code où je me trompe.Pourquoi l'interaction de l'utilisateur de mon Tabbar est-elle activée quand elle provient de popviewcontroller vers une autre vue?

première fois que mon application est lancer tout va bien

tabBars.tabBar.userInteractionEnabled = NO;

Ce code fonctionne très bien signifie que mon tabbar userInteraction est désactivé. Mais je vais aller à une autre vue et utiliser simplement le popViewController et venir à la première vue mon userInteraction est activé pourquoi? Je ne suis pas capable de trouver ce problème.

EATabBarVC *tabBars = [[EATabBarVC alloc] init]; 
UIImage *tabBarImage = [UIImage imageNamed:@"BottomTabBar.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:tabBarImage]; 
imageView.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, tabBars.tabBar.frame.size.height); 
[imageView sizeToFit]; 
tabBars.tabBar.userInteractionEnabled=NO; 
[tabBars.tabBar insertSubview:imageView atIndex:0]; 
tabBars.tabBar.tintColor = [UIColor colorWithRed:136/255.f green:159/255.f blue:186/255.f alpha:1]; 
tabBars.tabBar.tintColor = [UIColor whiteColor]; 
tabBars.navigationController.navigationBarHidden = YES; 
    NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:3]; 

    EAHomeVC *objEAHomeVC = [[EAHomeVC alloc] init]; 




    UINavigationController *dashboardNavController = [[UINavigationController alloc] initWithRootViewController:objEAHomeVC]; 

    dashboardNavController.navigationBar.hidden = YES; 


    EAScanLeadsVC *objEAScanLeadsVC = [[EAScanLeadsVC alloc] init]; 
    objEAScanLeadsVC.delegate = self; 
    objEAScanLeadsVC.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -3.0); 
    if (IS_IPHONE6PLUS) { 
     objEAScanLeadsVC.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -6.0); 
    } 
    if (IS_IPADAIR2||IS_IPADMINI) { 
     objEAScanLeadsVC.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -12.0); 

    } 

    [objEAScanLeadsVC.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor colorWithRed:136/255.f green:159/255.f blue:186/255.f alpha:1],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2)} 
              forState:UIControlStateNormal]; 
    [objEAScanLeadsVC.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2) } 
              forState:UIControlStateSelected]; 

    UINavigationController *scanNavController = [[UINavigationController alloc] initWithRootViewController:objEAScanLeadsVC]; 
    //scanNavController.title = @"Scan Lead"; 
    scanNavController.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -3.0); 
    if (IS_IPHONE6PLUS) { 
     scanNavController.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -6.0); 

    } 
    if (IS_IPADAIR2||IS_IPADMINI) { 
     scanNavController.tabBarItem.titlePositionAdjustment = UIOffsetMake(0.0, -12.0); 

    } 

    [scanNavController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor colorWithRed:136/255.f green:159/255.f blue:186/255.f alpha:1],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2) } 
               forState:UIControlStateNormal]; 
    [scanNavController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2) } 
               forState:UIControlStateSelected]; 

    [tabBars addCenterButtonWithImage:[UIImage imageNamed:@"TabBarScan.png"] highlightImage:[UIImage imageNamed:@"TabBarScan.png"]]; 






    [localViewControllersArray addObject:dashboardNavController]; 
    [localViewControllersArray addObject:scanNavController]; 


    tabBars.viewControllers = localViewControllersArray; 
    tabBars.view.autoresizingMask=(UIViewAutoresizingFlexibleHeight); 
    tabBars.navigationController.navigationBar.hidden = YES; 
    [tabBars.tabBar setItemWidth:self.view.frame.size.width/3]; 
    [tabBars.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor colorWithRed:136/255.f green:159/255.f blue:186/255.f alpha:1],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2) } 
               forState:UIControlStateNormal]; 
    [tabBars.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor],NSFontAttributeName : ROBOTOLIGHT(5.39*2.2) } 
               forState:UIControlStateSelected]; 

    return [[EABaseCenterVC alloc] 
      initWithRootViewController:tabBars]; 

Répondre

2

Ajouter ce code c'est peut-être utile.

- (void)viewWillAppear:(BOOL)animated 
{ 
[[[[self.tabBarController tabBar]items]objectAtIndex:0]setEnabled:FALSE]; 
[[[[self.tabBarController tabBar]items]objectAtIndex:1]setEnabled:FALSE]; 
} 
- (void)viewDidAppear:(BOOL)animated 
{ 
[[[[self.tabBarController tabBar]items]objectAtIndex:0]setEnabled:FALSE]; 
[[[[self.tabBarController tabBar]items]objectAtIndex:1]setEnabled:FALSE]; 
} 
0

iOS et d'autres composants 3ème partie ont des comportements en construction qui peuvent lui permettre de viewWillAppear ou quelque chose de similaire. Essayez de mettre votre ligne

tabBars.tabBar.userInteractionEnabled=NO; 

dans le

- (void)viewWillAppear:(BOOL)animated 

ou

- (void)viewDidAppear:(BOOL)animated 

des vues que vous souhaitez désactiver l'interaction pour

+0

son travail pas j'ai essayé cette –

+0

toute autre façon de désactiver la barre d'onglets –

0

est votre code ci-dessus dans viewDidLoad() Si oui, supprimez-le et ajoutez-le dans viewWillAppear().

Essayez-le peut travailler pour vous.