ios - 一般删除导航堆栈中的自定义 UIViewController 类

标签 ios swift uinavigationcontroller generics

我想以编程方式删除 UINavigationController 堆栈中特定类型的一些 Controller 。

工作非泛型函数:

    if let navigationController = navigationController {
        var controllers = [AnyObject]()
        for item in navigationController.viewControllers {
            if !(item is CustomViewController) {
                controllers.append(item)
            }
        }

        navigationController.viewControllers = controllers
    }

但是,我正在努力使这个变得通用。

func removeController<T>(controller: T.Type, navigationController: UINavigationController?) {
    if let navigationController = navigationController {
        var controllerArray = [AnyObject]()
        for item in navigationController.viewControllers {
            if !(item is T.Type) {
                controllerArray.append(item)
            }
        }
        navigationController.viewControllers = controllerArray
    }

}
removeController(CustomViewController.self, navigationController)

多次尝试,还是不行。
谁能帮帮我,谢谢。

最佳答案

试试下面的代码:

func removeController<T>(type: T.Type, navigationController: UINavigationController?) {

    if let navigationController = navigationController {
        var controllerArray = [UIViewController]()

        for item in navigationController.viewControllers as [UIViewController] {
            if !(item is T) {
                controllerArray.append(item)
            }
        }
        navigationController.viewControllers = controllerArray
    }
}

removeController(CustomViewController.self, navController)

关于ios - 一般删除导航堆栈中的自定义 UIViewController 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29442365/

相关文章:

ios - 为什么以前缓存在 iPad 上的 SVG 图像并不总是从应用程序缓存中加载?

ios - 向下/向上滚动时,uitableview 中的 uitextfield 文本已被重置 iOS

objective-c - 类方法中的 NSMutableArray

ios - Swift - 延迟后改变常量属性

swift - Swift 中是否有 Kotlin 等效的 `with` 函数?

ios - 想要延迟函数调用

ios - 第二次加载 ViewController 时,self.navigationController 为 nil

ios - Navigation Bar 消失 Change Root ViewController 然后重新赋值

iphone - 从 UIView 子类访问 UINavigationController

ios - 无法获取 UITableViewCell 的索引路径