0

我有两个带有导航控制器的不同表格视图的标签栏项目。通过单击 tab1--- table1 正在打开...很好。但是当我在 table1 上进行选择时,它会转到另一个视图(表确实选择了视图)....一切都很好。

但这里的问题是

当我点击 tab2 ----table 2 正在打开....好。

但是再次点击tab1-----它没有加载table1 ....它正在加载(表确实选择了视图)视图。作为我最后一次离开那里。

我想打开table1----点击tab1......通过编程。

帮我

4

1 回答 1

1

如果您在标签栏的项目中使用标签栏控制器和导航控制器,这是预期的行为。用户会期望选项卡保留视图的状态。

如果您仍然希望在用户返回选项卡时强制应用程序返回导航控制器的根视图控制器,您可以实现UITabBarControllerDelegate tabBarController:didSelectViewController:方法。这个委托方法的作用是:

告诉代理用户在选项卡栏中选择了一个项目。

然后调用UINavigationController的方法popToRootViewControllerAnimated:当用户点击选项卡时。这将帮助您:

弹出堆栈上除根视图控制器之外的所有视图控制器并更新显示。

例如:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if(viewController == yourNavigationController) {
        UINavigationController *navigationController = (UINavigationController *)viewController;
        [navigationController popToRootViewControllerAnimated:NO];
    }
}
于 2013-06-21T15:21:45.657 回答