Building an app with some video clips.
First we see a table view showing the different clip names. It has a navigation bar just to make it look nice. I also have a tab bar at the bottom.
Once the user click on the clip name it get passed on to the next view and the video starts playing. So far so good. The problem I have is that the navigation bar and the tab bar is also in that view.
How can I take them away (read clear the window/start a new window)?
How do I get the video to play full screen with nothing from the last view?
to hide the navigation bar, use the UINavigationController's navigationBarHidden property.
to hide the tab bar: before you push the new view controller (with the video), set its hidesBottomBarWhenPushedproperty. This will hide the tab bar until this UIViewController is popped from the view hierarchy stack.
Related
I have a view setup inside a UINavigationController. The Blue Warning Bar displays over the top of the NavigationController's NavBar. In another part of my project I have another UINavigationController setup inside a UITabController. The NavBar allows enough room for the Blue Warning Bar to display without an overlay.
What am I missing? How can I prevent the Blue Bar from overlaying the NavBar?
Blue Bar of Shame
I figured it out!
Here is what was actually happening:
I have a View Controller inside a Navigation Controller. This View Controller contains a list of “Appointments”. When the user taps on an “Appointment” the application segues to a detail view that uses a Tab Bar Controller with five tabs, each of which have their own Navigation Controller. The first tab has an address field that allows the user to launch a Navigation App (Apple Maps, Google Maps or Waze) by tapping on it.
After opening the Navigation App, if the user returns to my application while the navigation app is still open and they did not provide the proper permission to suppress the Blue Bar of Shame, then the Blue Bar of Shame is displayed above my Navigation Bar, as it should be. If they then tap the back button to dismiss the Tab Bar Controller and return to the original Navigation Controller, the Blue Bar of Shame is overlaid on top of the Navigation Bar.
I'm not sure if this is a bug with UIKit or not.
What I did to work around this:
I changed the manner in which an Appointment List selection opens the selected Appointment's Detail. I was using a simple segue. For some reason when navigating back to the Appointment List view from the Appointment Detail, the Appointment List view's Navigation Bar was not accounting for the expanded status bar when the Blue Bar of Shame was displayed. I ended up completely replacing the rootView, which was displaying the Appointment List, with the Appointment Detail Tab Bar Controller. When transitioning back, I do the same thing in reverse - replace the Appointment Detail with the Appointment List; this seems to have alleviated the rendering problem.
I then created an extension for UIWindow to emulate the default navigation style transition during the rootView replacements.
I have been trying to properly setup a navigation bar in one of my View Controllers for an hour now and have not found any working solutions.
I control-clicked on a button on my app's initial view controller(1st VC) and dragged to another view controller(2nd VC) and selected "modal" as the action segue.
I then added a navigation bar item to my 2nd view controller.
When I run my app on my iPhone, I can tap on the button on my app's initial screen and it will take me to my 2nd VC, and the 2nd VC does display the navigation bar, but the navigation bar does not have the default iOS 7 back arrow to let me go back to the app's initial VC.
I was under the impression that this could be setup exactly like I did above and that the back button functionality would be included by default.
Am I completely lost? Do I need to further customize navigation bar programmatically or with a tick box in the attributes inspector? Is "modal" the wrong action segue option?
I basically just want to have navigation bars at the top of a couple of my VC's so that the user can easily get back to the app's initial screen.
Thanks for the help.
Since you are presenting your second screen (2nd VC) as MODAL from your first screen (1st VC), you will not see the back arrow button on navigation bar. Your understanding about back button works for Navigation view controllers (push segue). For MODAL you need to put a cancel button on second VC's Nav bar and put a dismiss action for that.
How can I submerge and reveal tab bar in iOS like the Groupon iPhone app does?
Use a pseudo tab bar if you don't want to mess with the actual tab bar framework, subclassing etc. For example, put a segmented controller onto a view that is no bigger than the controller, size the view and controller to the size of a tab bar and just animate the origin of this custom view. Would be pretty easy and you could get it on and off the screen whenever desired with similar functionality to a tab bar.
Just one option...
I have an issue with a tab bar app. I am making a tab bar app with three bars on the bottom. On my my first bar it is a tableviewcontroller. When i ckick on the table view controller it takes me to a different view (which doesn't have the tab bar). When I clicked back to the home screen (which has the tab) the tab bar is gone.If you need a picture i will post it!
You may have set your UITableViewController segue to a modal style. If this is the case, you should change it to a push style.
In order for a push to work, your view controller needs to be in a UINavigationController. In your story board, select your root view controller and embed it into a Navigation Controller like this...
I'm working on an app that requires a pushing a view that is full screen and shows/hides status, navigation and bottom toolbars on tapping of the central image. The app currently has a UITabBarController that has a UINavigationController for each tab. Basically when the full screen view is displayed I want it to to work like the photos app and animate off the tab bar to show my full screen view.
I'm having trouble making the view take up the full screen if I manually animate out (down) or hide the tabbar.
So, in a nutshell, my question is - what is the view hierarchy of the photos app?
It must have a base navigation controller, that contains a tab bar controller. But does each tab contain another navigation controller? But if so, how to they seem to share the navigation bar with the root navigation controller (look at how the back buttons etc are animated in)?
Is there something really obvious I'm missing?
Thanks for any help.
Have you tried using UIViewController's hidesBottomBarWhenPushed property?