【问题标题】:When switching tabs removing All Child View Controllers and Move to Parent View Controller IOS Objective c切换选项卡时删除所有子视图控制器并移至父视图控制器 IOS 目标 c
【发布时间】:2017-10-31 09:17:40
【问题描述】:

我正在使用tabBarControllers。我有两个选项卡(主页和设置)。设置选项卡有多个子视图控制器。

我想要的是,当我在设置子视图控制器上并来回切换选项卡时,它将移回设置父视图控制器。

例如:我有 3 个设置视图控制器(SettingViewController1SettingViewController2SettingViewController3),当我在 SettingViewController3 上并切换选项卡(从“设置”到“主页”并从“主页”到“设置”)时,它移动到SettingViewController1(容器的父视图控制器)。

希望你能理解我的问题。谢谢

【问题讨论】:

  • 子视图控制器是什么意思?你在使用 UINavigationController 吗?

标签: ios objective-c uitabbarcontroller


【解决方案1】:

为您的UITabBarController 设置一个委托,并在以下方法中使用此代码:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    // You can replace the UINavigationController with your Setting's Navigation Controller class.
    if ([viewController isKindOfClass:[UINavigationController class]]) { 
        UINavigationController *nav = (UINavigationController *)viewController;
        [nav popToRootViewControllerAnimated:NO];
    }

    return YES;
}

【讨论】:

  • 谢谢哥们。有效。我认为您错误地写了“控制器类”。我刚刚删除了它并粘贴了您的代码,它可以按我的意愿完美运行。再次感谢。 :)
  • @Naqi 哦,是的,Controller class. 打错了,我修好了。
【解决方案2】:

使用 Swift 4.2

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {

        //Setup parent controller in tabbar with remove all chailed controller
        if (viewController is UINavigationController) {
            let navcontrollers = viewController as? UINavigationController
            navcontrollers?.popToRootViewController(animated: false)
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多