从标签栏应用程序中的表格视图推送新的视图控制器

Posted

技术标签:

【中文标题】从标签栏应用程序中的表格视图推送新的视图控制器【英文标题】:Pushing a new viewcontroller from a tableview in a tab bar app 【发布时间】:2012-04-12 02:46:06 【问题描述】:

我有一个带有UITabBarController 的应用程序,它可以控制多个UIViewControllers。在该控制器中有一个UITableViewController。我试图弄清楚如何在我的 tableview 上选择一行并在实际导航到该选项卡时推送我的其他选项卡之一的视图控制器。

我使用过performSegueWithIdentifier: 但它将新视图推送到我的tableview 所在的同一选项卡上。我想导航到我推送到的视图所在的选项卡。

如果我不清楚:我的表格视图在选项卡 1 中。我单击一行。我想进入 Tab 2。到目前为止,我已经能够将 Tab 2 的视图控制器推送到 Tab 1。不好。

谁能解释一下?

谢谢

【问题讨论】:

分享一些代码。你试过什么? 【参考方案1】:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    NSUInteger theIndex;
    [self.tabBarController setSelectedIndex:theIndex];

【讨论】:

【参考方案2】:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

    UIViewController *tab2ViewController = [self.tabBarController.viewControllers objectAtIndex:1];

    NewViewControllerToPush *mvc = [[NewViewControllerToPush alloc] init];
    [tab2ViewController.navigationController pushViewController:mvc animated:YES];
    [mvc release];

当您在 tabBar 中输入 viewControllers 时,请确保将它们包装在 UINavigationControllers 中,否则您将无法使用推送和弹出功能。

【讨论】:

感谢您的帮助。直到此时我才知道 NewViewControllerToPush。将来可能会派上用场。 NewViewControllerToPush 只是我想出的一个名字,你应该用你推入导航控制器的任何 ViewController 的名字替换它 哈哈你可以看出我已经盯着这个屏幕太久了。无论如何谢谢@aryaxt。

以上是关于从标签栏应用程序中的表格视图推送新的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

在标签栏控制器的推送视图控制器中显示工具栏

触摸表格视图中的单元格后标签栏消失

推送视图控制器后出现意外延迟

如何处理标签栏的推送通知,我的标签栏控制器远离根视图控制器

didReceiveRemoteNotification 从 tabbarcontroller 推送视图控制器

推送视图控制器后带回标签栏?