美文网首页
iOS-setViewControllers使用

iOS-setViewControllers使用

作者: 今晚月色 | 来源:发表于2023-03-30 16:13 被阅读0次

    跳转到controller页面,并移除不需要显示的控制器。
    常用于支付成功后,跳转到支付成功页,但是支付页或者其他页面 不需要显示,在成功页点击返回按钮或者手势返回时候。

    /// push到controler中并移除不需要显示的控制器
    /// - Parameters:
    ///   - controller: 显示的控制器
    ///   - controllers: 移除不需要显示的控制器
    ///   - animated: 是否需要动画
    - (void)showViewController:(UIViewController *)controller removeViewControllers:(NSArray<NSString * > *)controllers animated:(BOOL)animated{
        NSMutableArray<UIViewController *> *newStackControllers = [NSMutableArray array];
        __block NSArray<UIViewController *> *currentStackControllers = self.navigationController.viewControllers;
        [currentStackControllers enumerateObjectsUsingBlock:^(UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if (![controllers containsObject:NSStringFromClass(obj.class)]) {
                [newStackControllers addObject:obj];
            }
        }];
        [newStackControllers addObject:controller];
        [self.navigationController setViewControllers:newStackControllers animated:animated];
    }
    

    注:下载demo

    相关文章

      网友评论

          本文标题:iOS-setViewControllers使用

          本文链接:https://www.haomeiwen.com/subject/gxhcddtx.html