UITabBar轻触即可重新加载UIView

问题描述

| 触摸选项卡图标时,即使已经选择了图标,也可以调用方法吗?如果要显示子视图,我想使其在触摸时删除子视图。 我确定必须有一种方法可以执行此操作,因为我在其他应用程序中看到了它,但是找不到任何文档。     

解决方法

        从Apple文档获取UITabBarDelegate:   
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
     用户选择选项卡栏项目时发送给委托。 (需要) 如您所见,正如Apple文档所述,仅在选择选项卡时才发送此消息 重要说明,点击选定的选项卡栏按钮已经存在(未记录?)默认的of1行为:   如果选项卡包含“ 2”,它将向其发送“ 3”消息。您可以在任何iOS应用程序上进行检查。 因此,在覆盖此默认(和用户期望的)行为之前要当心,这通常是一个坏主意。 苹果可能故意在“ 1” API中隐藏了您想做的事情。 但是,如果您仍然希望这样做,则有一些建议: 小型但不容易破解:显示tabBar后,递归浏览其
.subviews
树以查找(我希望,待确认)I6的继承类(= private
UITabBarButtons
或类似的东西)以在TouchUp事件上添加目标/选择器对(您可能必须先删除默认行为,这可能很棘手) 最糟糕的解决方案,但可能是唯一的解决方案:不要使用
UITabBar
,而是自定义类。我很确定有现成的可以模仿ѭ8的开源组件,但是很抱歉,我从未使用过或搜索过。     ,        您可以拥有UITabbarcontroller的代表,
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
还请仔细阅读该文档:UITabBarController委托协议