Iphone uitabar在触摸屏上重新加载UIView
当触摸选项卡栏图标时,即使它已经是选定的图标,也可以调用方法吗?如果子视图正在显示,我想让它在触摸时删除子视图 我确信一定有办法做到这一点,因为我在其他应用程序中看到了它,但我找不到关于它的任何文档。来自:Iphone uitabar在触摸屏上重新加载UIView,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,当触摸选项卡栏图标时,即使它已经是选定的图标,也可以调用方法吗?如果子视图正在显示,我想让它在触摸时删除子视图 我确信一定有办法做到这一点,因为我在其他应用程序中看到了它,但我找不到关于它的任何文档。来自: -(void)选项卡栏:(UITabBar*)选项卡栏didSelectItem:(UITabBarItem*)项 当用户选择选项卡栏项目时发送给代理。(必选) 正如您所注意到的,我认为,正如Apple docs所述,只有在选择选项卡时才会发送此消息 一个重要的注意事项是,点击所选选项卡
-(void)选项卡栏:(UITabBar*)选项卡栏didSelectItem:(UITabBarItem*)项
当用户选择选项卡栏项目时发送给代理。(必选)
- 正如您所注意到的,我认为,正如Apple docs所述,只有在选择选项卡时才会发送此消息
- 一个重要的注意事项是,点击所选选项卡栏按钮已经存在(未记录?)默认
行为: 如果选项卡包含UIKit
,它将向其发送UINavigationViewController
消息。您可以在任何iOS应用程序上检查此项poptrootviewcontrolleranimated:
UIKit
API中隐藏了你想要做的事情
但如果你想这样做,这里有一些想法:
- 小但不易破解:显示选项卡栏后,递归浏览其
树,以查找(我希望得到确认)子视图
s继承类(=privateUIButton
或类似内容),在触碰事件中添加目标/选择器对(您可能必须首先删除默认行为,这可能很棘手)UITabBarButtons
- 最糟糕的解决方案,但可能是唯一的解决方案:不要使用
,而是一个自定义类。我很确定有现成的开源组件可以模仿uitabar
,但很抱歉,我从未使用/搜索过uitabar
-(void)选项卡栏:(UITabBar*)选项卡栏didSelectItem:(UITabBarItem*)项
当用户选择选项卡栏项目时发送给代理。(必需)
- 正如您所注意到的,我认为,正如Apple docs所述,只有在选择选项卡时才会发送此消息
- 一个重要的注意事项是,点击所选选项卡栏按钮已经存在(未记录?)默认
行为: 如果选项卡包含UIKit
,它将向其发送一条UINavigationViewController
消息。您可以在任何iOS应用程序上检查该消息poptrootviewcontrolleranimated:
UIKit
API中隐藏了你想要做的事情
但如果你想这样做,这里有一些想法:
- 小但不易破解:显示选项卡栏后,递归浏览其
树,以查找(我希望得到确认)子视图
s继承类(=privateUIButton
或类似内容),在触碰事件中添加目标/选择器对(您可能必须首先删除默认行为,这可能很棘手)UITabBarButtons
- 最糟糕的解决方案,但可能是唯一的解决方案:不要使用
,而是一个自定义类。我很确定有现成的开源组件可以模仿uitabar
,但很抱歉,我从未使用/搜索过uitabar
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
另外,请阅读此文档:您可以让UITabbarcontroller的代表
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
另外,请仔细阅读此文档:然后我要问第二个问题,如果您不介意的话,是否可以在顶部没有栏的情况下使用UINavigationController的功能?我想您可以通过玩一些东西(脏的)来实现如<代码> .Orth.y>=44代码/>代码> .gig.Higth+=44 或可能只是隐藏<代码>导航栏脏。您应该考虑添加一个刷新按钮,对用户更明确,而不是使用“技巧”来刷新视图,这是从UX的观点来看是不好的。(用户永远不会知道如何刷新视图!)我的应用程序对屏幕不动产的要求很高。你可能是对的,我会尝试你的建议,但我可能无论如何都要改变。谢谢你。除了年轻的极客,像推特拉刷新这样的“棘手”用户界面(顺便说一句,这可能是你的解决方案)这是一个糟糕的想法。如果你不介意的话,这就引出了第二个问题。是否可以在顶部没有栏的情况下使用UINavigationController的功能如<代码> .Orth.y>=44代码/>代码> .gig.Higth+=44 或可能只是隐藏<代码>导航栏脏。您应该考虑添加一个刷新按钮,对用户更明确,而不是使用“技巧”来刷新视图,这是从UX的观点来看是不好的。(用户永远不会知道如何刷新视图!)我的应用程序对屏幕不动产的要求很高。你可能是对的,我会尝试你的建议,但无论如何我都可能要改变。谢谢你。除了年轻的极客,像推特拉刷新这样的“棘手”用户界面(顺便说一句,可能是你的解决方案)是个坏主意