2017-03-09 3 views
0

Ich habe ...UITabBarController Benutzerdefinierte Schaltfläche nicht versteckt, während zum nächsten Viewcontroller bewegt

wie unten in UITabBarViewController, Code benutzerdefinierte mittlere Taste hinzugefügt
self.centerButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
self.centerButton.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin; 
self.centerButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 
[self.centerButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
[self.centerButton setBackgroundImage:highlightImage forState:UIControlStateHighlighted]; 

CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height; 
    if (heightDifference < 0) { 
     self.centerButton.center = self.tabBar.center; 
    } else { 
     CGPoint center = self.tabBar.center; 
     center.y = center.y - heightDifference/2.0; 
     self.centerButton.center = center; 
    } 

[self.centerButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 

[self.view addSubview:self.centerButton]; 

Bitte überprüfen angebracht Screenshot als Referenz,

enter image description here

Jetzt, wenn ich versuche, es zu verstecken, während ich zu einem anderen Viewcontroller wechsle, wird nur die Tableiste ausgeblendet und nicht die zentrale benutzerdefinierte Taste mit dem folgenden Code,

[self.tabBarController.tabBar setHidden:YES]; 

auch versucht, wie dieses Zentrum benutzerdefinierte Schaltfläche, verstecken

WBTabBarController *objWBTab = [self.storyboard instantiateViewControllerWithIdentifier:ID_CNTRL_TABBAR]; 
[objWBTab setTabBarHidden:YES]; 

SetTabBarHidden wie unten,

- (void)setTabBarHidden:(BOOL)tabBarHidden 
{ 
    self.centerButton.hidden = tabBarHidden; 
    self.tabBar.hidden = tabBarHidden; 
} 

noch kein Glück in WBTabBarController.m definiert wurde, kann jemand mir bitte helfen?

+0

erscheint Warum gehst du nicht einfach Fügen Sie 'UIButton' als Unteransicht der Tab-Leiste statt' self.view' hinzu? – Rikh

+0

Da benutzerdefinierte Schaltfläche ist in der Höhe größer, so muss ich es in self.view hinzufügen und ich kann es nicht in der Tableiste hinzufügen – Gati

+0

Nun, nicht die Clips auf die Grenzen von false der Tableiste setzen die gleiche Sache? Wie die Schaltfläche kann außerhalb der Grenzen der Registerkarte – Rikh

Antwort

1

Sein, weil Sie programmatisch nähern können‘geöffnet werden Fügen Sie Ihre Schaltfläche als Unteransicht zu Ihrer gesamten Ansicht statt der TabBar-Ansicht hinzu.

ändern [self.view addSubview:self.centerButton]; Linie mit
[self.tabBar addSubview:self.centerButton];

+0

Benutzerdefinierte Schaltfläche wird nicht in meiner bottomBar hinzugefügt. Es wird in self.view von tabbarviewcontroller hinzugefügt. Also, wenn ich die untere Leiste ausblenden werde, wird der benutzerdefinierte Button nicht versteckt. Als benutzerdefinierte Schaltfläche ist in der Höhe größer, so muss ich es in self.view hinzufügen und ich kann es nicht in der Tableiste hinzufügen – Gati

0

Versuch ausblenden Bottom Bar auf Drücken für Ihre Viewcontroller Überprüfung auf Storyboardenter image description here

oder Sie es auch, da dies in

 self.hidesBottomBarWhenPushed = true 
     let destinationVC = self.storyboard?.instantiateViewControllerWithIdentifier("StoryBoardID") as! yourVC 
     self.navigationController?.pushViewController(destinationVC, animated: true) 
     self.hidesBottomBarWhenPushed = false 
0

Lassen Sie versuchen, es zu verbergen, wenn Ansicht

-(void) viewWillDisappear:(BOOL)animated{ 
    [self setTabBarHidden:YES]; 
    [super viewWillDisappear:animated]; 
} 

verschwinden und es zeigen, wenn Ansicht

-(void) viewWillAppear:(BOOL)animated{ 
    [self setTabBarHidden:NO]; 
    [super viewWillAppear]; 
} 
+0

viewWillDisappear wird nicht aufgerufen, während Sie auf andere Viewcontroller von Tabbarcontroller :( – Gati

Verwandte Themen