0

我有一个带有 3 个选项卡的选项卡式应用程序

第一个选项卡是表格视图 第二和第三个选项卡是单页视图

当用户单击视图之一中的表格单元格时,将使用返回按钮将新视图推送到表格单元格。

现在假设他们单击选项卡 2,然后返回选项卡 1。在选项卡 1 上推送的新视图仍然可见。我想要的是当他们使用另一个选项卡离开它时让表格视图“重置”,这样当他们返回时,他们会看到表格视图而不是推送的新视图。

4

2 回答 2

0

我同意 ElJay 的评论,但要回答这个问题,请使用 UITabBarControllerDelegate

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

选择新选项卡时,查看当前选项卡是否是选项卡 1 selectedIndex 属性,tabBarController如果是popToRootViewController:

于 2012-01-13T04:30:32.703 回答
0

正如其他人所说,这可能不是一个好的用户体验。选项卡控制器的想法是,它允许用户在应用程序的不同部分之间自由切换,并直接回到他们之前所做的事情。

如果您决定这样做,则将导航视图控制器的根视图控制器设置为自定义子类,并将其设置为选项卡栏控制器的委托。

在您的自定义视图控制器中,实现函数 shouldSelect(),如下所示:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
  if viewController == self.navigationController {
    self.navigationController.popToRootViewController()
  }
  return true
}

披露:我没有尝试编译上面的代码,更不用说测试了。

于 2016-12-18T20:56:28.863 回答