如何知道何时从子视图中单击了超级视图中的选项卡项

Posted

技术标签:

【中文标题】如何知道何时从子视图中单击了超级视图中的选项卡项【英文标题】:How to know when a tabbar item that is in the superview is clicked from a sub view 【发布时间】:2011-02-22 14:12:43 【问题描述】:

我有一个应用程序,它有一个标签栏来浏览 5 个视图。 我在这 5 个视图之一中有一个 uitableview(此视图的视图控制器是表委托)。

现在我想在每次用户转到另一个视图并使用名为 reinitializeAndReloadTable 的方法返回该视图时重新加载我的表视图,但是我不知道何时调用它..

有没有一种方法可以让我的视图知道其父视图中相关的标签栏项目已被重新点击?

感谢

时间

【问题讨论】:

【参考方案1】:

当您选择特定标签时,您想知道什么?

您可以使用此方法。在 App 委托中添加这个。每次单击选项卡时都会调用它 然后你可以查找特定的视图控制器索引并重新加载表。

在此处创建一个 BOOL 来识别不是点击了 tableview .. 用它来调用 reload 方法。

` // 可选的 UITabBarControllerDelegate 方法

(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

如果 ((self.tabBarController.selectedIndex == 1) //把你的代码放在这里。 `

【讨论】:

@TheAstra 这意味着我仍然必须在我的桌子所在的视图的超级视图中处理此事件.. 我正在调试它。有趣的是,我的应用程序从未使用 didSelectViewController 方法:[ 我确实通过 xcode 上的模板标签栏应用程序创建了这个应用程序。因此它已经将应用程序创建为 uitabbarcontroller 的委托 我认为通过 IB 生成的标签栏不知道它有我的应用程序作为委托:( 我接受你的回答。另外有人可能想看看这个帖子:***.com/questions/1781037/…

以上是关于如何知道何时从子视图中单击了超级视图中的选项卡项的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF 中开始时绑定所有选项卡项视图模型

iOS:如何将触摸事件从子视图转发到超级视图? [复制]

使用Android ViewPager2在回收器视图中滚动到底部时自动更改选项卡项

Catel 中的嵌套验证

将视图添加到“更多”选项卡项

加载外部视图控制器,从按钮​​单击另一个视图控制器