如何从 UITabBarController 将初始焦点设置到 viewController 中的按钮?
How to set initial focus to a button in a viewController from a UITabBarController?
我有一个带有 UITabBarController 的基本应用程序,其中包含 2 个 UIViewController。
第一个 ViewController 里面有一个 UIButton。
我正在尝试隐藏 tabBar 菜单,并在应用程序启动时突出显示按钮。
我将 tabBar 设置为隐藏,但它没有按预期在启动时显示。不幸的是,按钮没有焦点。
据我从 Apple 文档中了解到,"focus chain" 引擎会将焦点设置在 window 层次结构中第一个可见且可聚焦的项目上。
谁能帮我解决这个问题?
谢谢。
解决方案一。
我认为你可以做什么 :
1.Subclass 或自定义 TabBarController 并设置
在 tabController
的 viewdidload 中设置 first launch = true
> override weak var preferredFocusedView: UIView? { if
> (self.firstLaunch) {
> self.firstLaunch = false;
> return self.selectedViewController!.preferredFocusedView; } else {
> let view = super.preferredFocusedView
> return view; }
希望它 helps.It 对我有用
您的焦点引擎将 rootView 控制器作为 TabBarController,然后请求作为 UITabBarItem 返回的首选焦点视图,我们需要取消对 class 子 class 的焦点并将 canBecomeFocus 返回为 NO。
如果你想改变 firtsViewController 中元素的焦点,那么你可以覆盖 func preferredFocusView 并重新输入你想要聚焦的视图 else preferredFocusView
解决方案2。只需将根视图控制器设置为不带TabBarController 的HomeViewController,然后从第二页嵌入TabBarController。这是因为无论如何你不需要在第一页上使用 TabBar 为什么需要照顾它的焦点。
如果您从 AppDelegate 或加载但有焦点的视图中隐藏,TabBar 将设置为隐藏。
我有一个带有 UITabBarController 的基本应用程序,其中包含 2 个 UIViewController。 第一个 ViewController 里面有一个 UIButton。
我正在尝试隐藏 tabBar 菜单,并在应用程序启动时突出显示按钮。 我将 tabBar 设置为隐藏,但它没有按预期在启动时显示。不幸的是,按钮没有焦点。
据我从 Apple 文档中了解到,"focus chain" 引擎会将焦点设置在 window 层次结构中第一个可见且可聚焦的项目上。
谁能帮我解决这个问题? 谢谢。
解决方案一。 我认为你可以做什么 :
1.Subclass 或自定义 TabBarController 并设置 在 tabController
的 viewdidload 中设置 first launch = true> override weak var preferredFocusedView: UIView? { if
> (self.firstLaunch) {
> self.firstLaunch = false;
> return self.selectedViewController!.preferredFocusedView; } else {
> let view = super.preferredFocusedView
> return view; }
希望它 helps.It 对我有用
您的焦点引擎将 rootView 控制器作为 TabBarController,然后请求作为 UITabBarItem 返回的首选焦点视图,我们需要取消对 class 子 class 的焦点并将 canBecomeFocus 返回为 NO。
如果你想改变 firtsViewController 中元素的焦点,那么你可以覆盖 func preferredFocusView 并重新输入你想要聚焦的视图 else preferredFocusView
解决方案2。只需将根视图控制器设置为不带TabBarController 的HomeViewController,然后从第二页嵌入TabBarController。这是因为无论如何你不需要在第一页上使用 TabBar 为什么需要照顾它的焦点。
如果您从 AppDelegate 或加载但有焦点的视图中隐藏,TabBar 将设置为隐藏。