3

我的应用程序中有两个选项卡,左侧选项卡是普通的 UIViewController,右侧选项卡是导航控制器,里面有一个表格视图。我想让用户按下左侧选项卡上的按钮并跳转到属于右侧选项卡上表视图中特定行的特定详细信息视图。

在表格视图本身中,我可以毫无问题地显示特定的详细视图,例如:

[self.navigationController pushViewController:theView animated:YES];

我也可以使用跳转标签

self.tabBarController.selectedIndex = 1; // 1= right tab

但我不知道如何做到这两点。我试过了

self.tabBarController.selectedIndex = 1; // 1= right tab
// alloc and init theView here
[self.navigationController pushViewController:theView animated:YES];

但这不起作用。

编辑:

当我尝试上面的代码时,它只是切换选项卡但不推送视图。

我也尝试了 criscokid 的建议,但没有任何反应。

编辑2:

试图解释每个选项卡上的内容:

根(标签栏控制器)  
|  
--(Left Tab)-- UIViewController (我想从这里走...)  
|  
--(右标签)---UINavigationController  
             |  
             ---UITableViewController  
                 |  
                 ----UIViewController (...到这里)
                      ^ 包含特定行数据的特定视图
                        在表格视图中(即上面的“theView”)
4

2 回答 2

4

对我来说正确的方法是:

 UINavigationController * navigationController = (UINavigationController *) [[self tabBarController] selectedViewController];
 [navigationController pushViewController:viewController animated:YES];

criscokid 的回答对navigationController. 那是因为你selectedViewController实际上是一个UINavigationViewController.

于 2011-11-04T08:27:25.493 回答
1

如果您正在切换选项卡栏并以相同的方法将 ViewController 推送到导航控制器堆栈,则您不会想要使用 self.navigationController。如果我理解正确,您想将其添加到右侧选项卡上的 navigationController 中。我相信你会想要使用:

[[[[self tabBarController] selectedViewController] navigationController] pushViewController:theView animated:YES];
于 2009-08-24T21:41:01.217 回答