【问题标题】:Get back to root view when tab is selected选择选项卡时返回根视图
【发布时间】:2013-12-12 13:53:04
【问题描述】:

参考this link,我在AppDelegate.h中添加了UITabDelegateUITabBarControllerDelegate并添加了

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if ([viewController isKindOfClass:[UINavigationController class]])
    {
        [(UINavigationController *)viewController popToRootViewControllerAnimated:NO];
    }
}

AppDelegate.m。问题仍然没有解决。我在我的项目中使用 XIB 并处理登录和注销以相应地启用和禁用标签栏。

【问题讨论】:

  • 我相信该方法中的 viewController 将是导航控制器根视图控制器而不是 uinavigationcontroller 直接。
  • 我正在使用带有导航栏的标签栏

标签: ios objective-c uitabbarcontroller uitabbar


【解决方案1】:

你应该这样写:

if ([viewController isKindOfClass:[ClassName_Of_Selected_ViewController class]])
    {
        //[(UINavigationController *)viewController popToRootViewControllerAnimated:NO];
        [viewController.navigationController popToRootViewControllerAnimated:NO];
    }

【讨论】:

  • - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { if ([viewController isKindOfClass:[UINavigationController class]]) { [viewController.navigationController popToRootViewControllerAnimated:NO]; } } 不工作
  • 你是否在你的应用程序中使用了 UINavigationController。并且不要与 [UINavigationController 类] 比较。与 UIViewController 类的名称比较。
  • 我将它与 UIViewController 类进行了比较。没用。
  • 你的班级叫什么名字?你在你的应用程序中使用了UINavigationController 吗?如果您使用唯一的popToRootViewControllerAnimated 将起作用。
  • 显然我在课堂上使用了 navigationController。我在一个选项卡中导航到第二个视图。当我点击选项卡时,我需要它位于第一个视图上。
猜你喜欢
  • 2011-11-30
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多