我有一个带有3个标签的标签式应用程序
第一个标签是表格视图 第二个和第三个选项卡是单页面视图
当用户点击视图中的表格单元格时,会使用返回按钮将新视图推送到表格单元格。
现在假设他们单击选项卡2,然后返回选项卡1.在选项卡1上推送的新视图仍然可见。我想要的是让表格视图“重置”当他们使用另一个标签离开它时,这样当他们返回时,他们会看到表视图而不是推送的新视图。
答案 0 :(得分:0)
我同意ElJay的评论,但要回答这个问题请使用UITabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
选择新标签时,查看当前标签是否为{1}}的tab1 selectedIndex属性,如果是tabBarController
答案 1 :(得分:0)
正如其他人所说,这可能不是一个好的用户体验。标签控制器的想法是,它允许用户在他们的应用程序的不同部分之间自由切换,然后回到他们之前做的事情。
如果您决定以这种方式执行此操作,请将导航视图控制器的根视图控制器设置为自定义子类,并将其设置为标签栏控制器的委托。
在自定义视图控制器中,实现函数shouldSelect(),如下所示:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
if viewController == self.navigationController {
self.navigationController.popToRootViewController()
}
return true
}
披露:我还没有尝试编译上面的代码,更不用说测试它了。