如何将popToRootViewControllerAnimated与我的标签集成?

Ada*_*orr 1 objective-c iphone-sdk-3.0 ios4

我正在尝试使用popToRootViewControllerAnimated使我的一个标签按钮转到根目录.我的问题是:我在哪里放这个代码才能工作?我通过Interface Builder创建了我的标签...是否必须对其进行硬编码以使其正常工作?

这是我要使用的代码:

[self.navigationController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

AppDelegate中的新代码:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if (viewController = HomeViewController) {
        [HomeViewController popToRootViewControllerAnimated:NO];
    }
}
Run Code Online (Sandbox Code Playgroud)

mac*_*oss 7

亚当 - 我最终放弃了子类的想法,即使它有效,因为有一个更简单的方法.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if ([viewController isKindOfClass:[UINavigationController class]]) {
        [(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

这是所需的代码.我上传了这个示例项目来玩.要点是

  • 必须将UITabBarController委托设置为App Delegate.
  • App Delegate必须实现<UITabBarControllerDelegate>协议.
  • App Delegate必须实现上面的代码.

示例项目还显示了一种有选择地选择使用哪种导航控制器的方法.