Summary:
In tvOS 9.2, in a view controller that subclasses GCEventViewController and sets controllerUserInteractionEnabled to false, setting a closure for the controllerPausedHandler on a GCController causes the UI to 'navigate back'. According to all documentation and prior versions of tvOS this is not desired behaviour. With the controllerUserInteractionEnabled property set to false, the controller events should not be propagated to the responder chain and should not trigger UIKit actions such as dismissing modal view controllers or navigating back on a navigation stack.
Steps to Reproduce:
Connect an MFi game controller to an Apple TV running tvOS 9.2
Present a modal view controller that subclasses GCEventViewController
Set it's controllerUserInteractionEnabled to false
Set a controllerPausedHandler closure
Press the menu/pause button on the controller
Expected Results:
The closure set as the controllerPausedHandler should be executed and it's enclosed code should execute. There should be no back action, no dismissal of modally presented view controllers etc.
Actual Results:
The closure is executed, but the modal view controller is also dismissed.
Version:
tvOS 9.2, Xcode 7.3
Notes:
This undesirable behaviour also happens when using the Siri Remote in place of a game controller.
Configuration:
Apple TV, with a wireless MFi controller connected
Attachments:
'MenuButtonTest.zip' was successfully uploaded. (http://d.pr/f/1gDgs)
Description
Summary: In tvOS 9.2, in a view controller that subclasses GCEventViewController and sets
controllerUserInteractionEnabled
tofalse
, setting a closure for thecontrollerPausedHandler
on aGCController
causes the UI to 'navigate back'. According to all documentation and prior versions of tvOS this is not desired behaviour. With thecontrollerUserInteractionEnabled
property set tofalse
, the controller events should not be propagated to the responder chain and should not trigger UIKit actions such as dismissing modal view controllers or navigating back on a navigation stack.Steps to Reproduce:
Expected Results: The closure set as the controllerPausedHandler should be executed and it's enclosed code should execute. There should be no back action, no dismissal of modally presented view controllers etc.
Actual Results: The closure is executed, but the modal view controller is also dismissed.
Version: tvOS 9.2, Xcode 7.3
Notes: This undesirable behaviour also happens when using the Siri Remote in place of a game controller.
Configuration: Apple TV, with a wireless MFi controller connected
Attachments: 'MenuButtonTest.zip' was successfully uploaded. (http://d.pr/f/1gDgs)
Product Version: 9.2 Created: 2016-03-30T00:05:39.379220 Originated: 2016-03-30T01:03:00 Open Radar Link: http://www.openradar.me/25428691