1

我有一个应用程序,它有一个处理所有视图的 tabBar。在第一个视图中,我有一个登录过程。当该过程完成后,我想自动转到第二个 tabBar 视图,而不需要用户单击其各自的 tabBar 按钮。

到目前为止,我所要做的就是用这个突出显示按钮:

myTabBar.selectedItem = [myTabBar.items objectAtIndex:1];

但我不知道如何自动将与该按钮相关的第二个视图带到前面。到目前为止,用户必须在按钮亮起(选中)时按下按钮。

关于如何做到这一点的任何想法?可能吗?将不胜感激。谢谢。

4

3 回答 3

1

使用对应的UITabBarController的selectedViewControllerselectedIndex方法。

针对对此答案的评论,我提供了一个如何实现的示例:

id firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
id secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController, nil];

[firstViewController release];
[secondViewController release];

// Select the second tab bar item and its view
self.tabBarController.selectedIndex = 1;

[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];

在我的测试中,似乎使用 UITabBarController 的 selectedViewController 方法设置当前视图不会更新 selectedIndex 属性(显示新视图但未更改所选 UITabBarItem )。这与文档中承诺的行为相反。但是,使用上面代码片段中演示的 selectedIndex 方法应该可以正常工作。

于 2009-07-29T19:10:01.763 回答
1

您应该实现 UITabBarControllerDelegate 协议,如下所述:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html

要更改活动选项卡,请使用 tabBarController:shouldSelectViewController: 如文档中所述“您可以使用此方法动态决定是否应将给定选项卡设为活动选项卡。”

于 2011-06-11T06:27:12.070 回答
0

最后我在这里得到了解决方案:

iphone sdk:从第一个标签栏项目单击按钮时将焦点设置为不同的标签栏视图

不管怎么说,多谢拉。

于 2009-07-30T14:36:31.513 回答