带有表格视图的iOS选项卡式应用程序,如何重置表格视图选项卡?初学者。

时间:2012-01-12 19:19:25

标签: ios uitableview uitabbarcontroller uitabbar uitabview

我有一个带有3个标签的标签式应用程序

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

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

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

2 个答案:

答案 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
}

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