2013-03-26 74 views

回答

4

要更多的屏幕选择视图控制器,你应该首先选择更多视图控制器,因为它显示在前面的回答:

[tabBarController setSelectedViewController: [tabBarController moreNavigationController]] 

,然后执行pushViewController方法更视图控制器

[[tabBarController moreNavigationController] pushViewController:neededViewController animated:NO] 

或者使用更好的方式:

[tabBarController setSelectedViewController: neededViewController ] 
+0

我如何找到neededViewController?如果我创建一个新的(H​​ome * homeView = [[Home alloc] init]; [tabBarController setSelectedViewController:homeView];)在运行时xcode告诉我“终止应用程序由于未捕获异常'NSInvalidArgumentException',原因:' - [UITabBarController setSelectedViewController :]只能选择标签栏控制器视图控制器列表中的视图控制器。“ Home是由uitabbar管理的视图控制器 – 2013-03-27 08:58:27

+0

只有当它包含在tabBarController.viewControllers数组中时,才可以选择所选视图控制器。 [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:neededIndex]] – 2013-03-27 09:09:02

+0

谢谢!此代码完美工作!我可以要求您将它添加到您的答案中吗(使其更加完整)? [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:7]]; – 2013-03-27 09:09:28

1
[myTabBarController setSelectedViewController: viewControllerThatYouNeed]; 

编辑:

尝试使用的UITabBarController的selectedViewController财产。 从苹果文档:

块引用 在iOS 3.0及其以后,你可以使用这个属性来选择任何在viewControllers属性视图控制器。这包括由更多导航控制器管理的视图控制器,其标签栏项目在标签栏中不可见。

+0

这导致了更多的观点。如果我想去更多视图内的项目? – 2013-03-26 12:53:04

+0

我无法获得代码来选择正确的视图控制器..如果我创建一个新的(家庭* homeView = [[家庭分配]初始化]; [tabBarController setSelectedViewController:homeView];)xcode在运行时告诉我“终止应用程序到期未捕获异常'NSInvalidArgumentException',原因:' - [UITabBarController setSelectedViewController:]只能选择标签栏控制器视图控制器列表中的视图控制器。“ Home是由uitabbar管理的视图控制器 – 2013-03-27 09:05:34

相关问题