0

我的 MainStoryboard 的结构是:

->Tab Bar Controller -> Navigation Controller -> View Controller (Search)

我想要的行为是,当用户重新选择搜索选项卡时,它上面的 UIScrollView 滚动到顶部。但是,我不确定如何从 TabBarController 获取事件。

我一直在看很多关于 UITabBarDelegate 的东西,特别是:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

不过,我并没有设法让它正常工作。我非常不确定如何设置委托(假设是这样做的)。我已经尝试在 IB 中连接它,但它不会让我这样做。我还尝试从 AppDelegate 获取 UITabBar (在查看了一些看似相关的答案之后)。

任何指针都将不胜感激(除非它们为空)。

4

2 回答 2

1
UITabBar *aTabBar = [UITabBarItem alloc] init];

....您想对 aTabBar 进行的任何其他修改....

[aTabBar setDelegate:self]
于 2012-12-09T06:37:35.717 回答
0

不要忘记将“ ”添加到您尝试指定为委托的任何对象 <UITabBarDelegate>的“ ”部分。@interface

对于我自己的代码,我通常使用一些不是应用程序委托的对象(因为应用程序委托通常用于应用程序级别的事件,例如“应用程序正在暂停”或“应用程序正在回到前台”)。如果您将“ <UITabBarDelegate>”添加到您的搜索视图控制器,请确保您对“ didSelectItem”方法所做的任何事情都仅适用于搜索视图控制器。否则,如果您想根据正在显示的选项卡栏项目对各种视图控制器执行操作,则实例化一些不同的对象。

于 2012-07-06T11:54:49.717 回答