2017-10-24 1 views
0

Ich verwende TabController in Storyboard Control. Nachdem sich der Benutzer bei aPP angemeldet hat, wird TABController mit 5 TAB geladen.Disable Tab Items (Storyboard) in IOS11

bei der Verwendung klicken Sie auf die Schaltfläche auf Registerkarte 1, ich wollte Rest 4 Tabs deaktivieren. Es sollte keine Benutzerinteraktion zu anderen 4 TABs geben.

unten ist einfach Code, aber es nicht deaktiviert anderen 4 Registerkarten:

-(void)tab_Dis:(Bool)bOpen 
{ 
    UITabBarController *about_vc = (UITabBarController*)[[UIStoryboard  storyboardWithName:@"NexTabBar" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ID_TABBAR"]; 
    UITabBar *tabBar = about_vc.tabBar; 

    if(bOpen) 
    { 
     [[tabBar.items objectAtIndex:0] setEnabled:FALSE]; 
     [[tabBar.items objectAtIndex:2] setEnabled:FALSE]; 
     [[tabBar.items objectAtIndex:3] setEnabled:FALSE]; 
     [[tabBar.items objectAtIndex:4] setEnabled:FALSE]; 
    } 
    else 
    { 
     [[tabBar.items objectAtIndex:0] setEnabled:TRUE]; 
     [[tabBar.items objectAtIndex:2] setEnabled:TRUE]; 
     [[tabBar.items objectAtIndex:3] setEnabled:TRUE]; 
     [[tabBar.items objectAtIndex:4] setEnabled:TRUE]; 
    } 
} 

aber selbst wenn setEnabled FALSCH i auf anderen Registerkarten klicken können .. , was ist das Problem?

Vielen Dank im Voraus

+0

die in diesem Beitrag erwähnt Antwort Versuchen: https://stackoverflow.com/a/44484124/5334132. – Phontana

+0

Ich möchte nicht den gesamten Tab-Controller deaktivieren, außer dem aktuellen Tab-Item rest alle Tabs, die ich deaktivieren wollte. – user2813740

Antwort

0

fand ich heraus, unter dem Code adaequat ist:

[[[[self.tabBarController tabBar] items] objectAtIndex:0] setEnabled:FALSE]; 
[[[[self.tabBarController tabBar] items] objectAtIndex:2] setEnabled:FALSE]; 
[[[[self.tabBarController tabBar] items] objectAtIndex:3] setEnabled:FALSE]; 
[[[[self.tabBarController tabBar] items] objectAtIndex:4] setEnabled:FALSE]; 
Verwandte Themen