iPhone开发,如何以编程方式从另一个选项卡调用NavigationController后退按钮?

时间:2010-07-15 17:51:54

标签: iphone uinavigationcontroller uitabbarcontroller

以下是设置:

我有一个带有两个标签的标签栏控制器。第二个选项卡顶部有一个导航控制器,以便我可以从表中查看详细信息。

在标签#1上,我有一个按钮。按下此按钮时,它会将选定的选项卡切换到选项卡#2。

我的问题是这样的:假设我转到标签#2,然后从表格中选择一行来查看详细信息。然后,我选择选项卡#1,而不是点击“后退”按钮返回基本视图。然后我按下我的按钮。选项卡#2加载,但它仍然显示详细视图,而不是我想要的表视图。

我知道如何以编程方式按下按钮  [self.navigationController popViewControllerAnimated:YES];

但是当按下按钮的方法在选项卡#1的类中时,我该怎么做呢,它对选项卡#2的导航控制器一无所知?

希望这是有道理的。在此先感谢您的帮助!


好的,我终于开始工作了。建议的解决方案给了我一个很好的跳跃点。这是最终为我工作的代码:

ARFinderAppDelegate appDelegate = (ARFinderAppDelegate)[[UIApplication sharedApplication] delegate];

[appDelegate.booksNavigationController popViewControllerAnimated:YES]; self.tabBarController.selectedIndex = 1;


我必须通过应用程序委托的实例访问包含NavigationController的类。我还必须删除“objectAtIndex:1”,因为我的应用程序会崩溃。

感谢所有的帮助,这对于这个iPhone开发新手来说是一次很棒的学习经历!

1 个答案:

答案 0 :(得分:3)

使用你的委托单身人士。

[[delegate.tabBarController.viewControllers objectAtIndex:tab2Index] popViewControllerAnimated:YES];