dtmland
dtmland

Reputation: 2216

XCode/iOS: setToolbarHidden:animated creates new unwanted toolbar?

I'm trying to achieve something similar to user of this post:

Xcode/iOS: How to hide Navigation- AND ToolBar on scroll down?

I'm able to hide (or unhide using NO) the navigation bar successfully using the code:

[[self navigationController] setNavigationBarHidden:YES animated:YES];

However, when I attempt to hide the toolbar using the code:

[[self navigationController] setToolbarHidden:YES animated:YES];

Nothing happens. I then noticed when unhiding the toolbar that I received an additional blue toolbar that I didn't realize existed. This screenshot shows this:

Screenshot

I do not want the blue bar. What I am trying to do is hide or unhide the Black toolbar with the icons on it. (the UITabBar).

I think what I need to do is somehow I need to access the navigation controller of one of the parent view controllers and call the setToolbarHidden on the navigation controller of that view. However, I can't seem to figure out how to do this.

I've tried the following and all seem to have no effect:

[[[self parentViewController] navigationController] setToolbarHidden:YES animated:YES];

or

[[[[[[UIApplication sharedApplication] delegate] window] rootViewController] navigationController] setToolbarHidden:YES animated:YES];

My view controller storyboard consists of the following:

The InitialViewController is a TabBarViewController. It contains three children. One of those children is a UINavigationController. This navigation controller gets several UITableViewController pushed onto it, and eventually a UIViewController is pushed. This last UIViewController is what is seen in the screenshot.

Rough Layout:

I've tried using

[self parentViewController] parentViewController] parentViewController] ...

to attempt to get back to the top, but this hasn't seemed to work either.

Any suggestions?

Upvotes: 1

Views: 2286

Answers (1)

samson
samson

Reputation: 1152

I think the problem here might be related to UITabBarController not having a UIToolbar. The setToolbarHidden: method will only apply to the UINavigationController's built-in toolbar (see Apple's documentation). If it's the UITabBarController's tab bar that you actually want to hide, take a look at this post which links to a method using UIView animations directly on the UITabBar.

Upvotes: 1

Related Questions