以下是设置:
我有一个带有两个标签的标签栏控制器。第二个选项卡顶部有一个导航控制器,以便我可以从表中查看详细信息。
在标签#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开发新手来说是一次很棒的学习经历!
答案 0 :(得分:3)
使用你的委托单身人士。
[[delegate.tabBarController.viewControllers objectAtIndex:tab2Index] popViewControllerAnimated:YES];