Unfortunately after further testing this fix doesn't work if the user has the More tab selected (or any of its child controllers).
The only workaround I could use is retaining a reference to the tab bar controller in a global variable.
var retainedReference: UITabBarController?
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
retainedReference = self
}
}