在加载的视图上选择选项卡并更改段
Posted
技术标签:
【中文标题】在加载的视图上选择选项卡并更改段【英文标题】:Select tab and change segment on the view loaded 【发布时间】:2018-12-21 09:06:07 【问题描述】:我希望能够以编程方式选择 UITabBarController 上的选项卡,然后访问加载的视图以设置默认加载的段。
例如,如果我有一个菜单并单击标题为“A/B”的按钮,我希望它选择“A”选项卡,然后选择“B”段。如果我单击标题为“A/C”的按钮,我希望它选择“A”选项卡,然后选择“C”段。
我设法弄清楚问题的第一部分如下:
class TabBarController: UITabBarController
...
func selectTab(name: String)
for tab in self.viewControllers!
if(name == tab.tabBarItem.title)
self.selectedViewController = tab
return
我不确定如何获得自动打开的视图。最好的方法是什么?
非常感谢!
【问题讨论】:
【参考方案1】:最后,我意识到我可以从 self.selectedViewController
获取导航控制器,然后使用 topViewController
从那里获取视图控制器。
例如,如果我有一个名为 NavigationController
的导航控制器和一个名为 GroupsViewController
的视图控制器,我可以执行以下操作:
func selectTab(name: String, contentType: ContentType? = nil)
for tab in self.viewControllers!
if(name == tab.tabBarItem.title)
self.selectedViewController = tab
if let nc = self.selectedViewController as? NavigationController
if let vc = nc.topViewController
if let gvc = vc as? GroupsViewController
gvc.activeContentType = contentType
return
请注意,我必须设置一个变量(ContentType 类型)以在ViewDidAppear
中使用,而不是像我最初计划的那样访问段控制(因为虽然选项卡可能存在,但视图控制器可能没有尚未加载)。
【讨论】:
以上是关于在加载的视图上选择选项卡并更改段的主要内容,如果未能解决你的问题,请参考以下文章
React Hooks-当我在另一个选择上选择一个选项时更改选择选项
在jquery的ui-tabs中查找活动选项卡并更改颜色[重复]