tvOS 10 can't dismiss UITabBar

I have an app that was working fine with Swift 2 and tvOS 9. The app is basically root VC with a uitabbar (created implicility by linking to othe VCs). Each VC coming of the root is a NVC. Within this is a UICollectionView which leads to another UICollectionView which eventually (when an item) is selected goes to a custom UIViewController. At it's a NVC all VCs are pushed.


This worked fine in tvOS 9, however having upgraded to tvOS 10 and Swift 3 (the version I have live on the Apple TV App Store behaves correctly) when pushing the final (custom) VC the UITabBar appears automatically and cannot be dismissed.


I've tried switching from segues to explicitly calling pushViewController (instantiating the VC from the StoryBoard) but this results in the same behaviour.


Chaging the segue type to "Present Modally" seems to prevent this but breaks the rest of the program is it's all geared to pushing.


Does anyone have any ideas please?

I've reduced this down (using a brand new app) of just a single tabbar (using the tab bar template), an NVC, a CollectionView and another view, i.e.


TabBarVC->NVC->CollectionVC->VC (with image in it)


This works fine until until the cell (each just contains an image) is selected and then it automaticaly segues into the final VC and the tabbar descends and it can't be swiped-up & pressing menu returns to the main tvOS screen.


Is this:


-A bug with tvOS 10?

-Misuse of the NVC in that the final VC should be shown modally rather than pushed?

-An issue with configuring the tabbar and/or NVC with Xcode8/tvOS 10


If anybody from Apple/tvOS team is reading this then any help gratefully received

Please file a bug report at https://bugreport.apple.com with your example project and directions on how to recreate the issue.

Done this. How long does it normally take to get some sort of acknowledgement and ideally answer please?

I'm having the same exact issue; the Tab Bar seems to disappear okay for some view controllers and not others. I have one view with a AVPlayerLayer, another with UICollectionViewController, one with a SCNView, and one just a regular UIView with UIKit controls. The Tab Bar isn't closing/disappearing for AVPlayerLayer and SCNView -- is it somethng related to the GPU? Is there a temporary fix we can do like overriding UITabBarController...? Or is that not a good idea...

Thanks to everyone for posting their situations with this issue. What I suspect is happening is there is no focusable view in the visible view controller. In this case the tab bar remains focused which causes it to stay on screen. In order to make the tab bar hidden ensure there's a focusable view on the content view controller. If you have a custom view this can be done by implementing -canBecomeFocused.

Thank you so much that is actually a *huge* help; at least we know what the problem is now 🙂

Fortunately the problematic VC has a corresponding custom view and overriding -canBecomeFocused fixes it. Thanks! Given the old version of my app works on tvOS 10 is the issue related the tvOS 10 SDK rather than tvOS itself?

This design defect breaks my app when I have an initially-empty UITableView. The tab bar covers up the nav bar, including the buttons required to populate the table view. I'm seeing that many users do not think to select the tab bar item again to dismiss the tab bar. That is totally unintuitive. An empty UITableView needs to be considered focusable in this situation.

Can we find somewhere documentation to the changes related to the focus engine in tvOS SDK 10? I found more issues related to the focus engine related to the change from tvOS 9 to 10. preferredFocusedView is 'ignored' or for sure executed differently in some cases where in SDK 9 worked fine. As @Scenario said, also in SDK 9 even when one of the tabbarcontroller's controller was UITableView with empty content (even for a while because of the async data loading) focus of the tab was able to stay, in SDK after press event it immediately backs to the first tab.

tvOS 10 can't dismiss UITabBar
 
 
Q