1
我想以編程方式在UINavigationController
堆棧中刪除某些特定類型的控制器。一般刪除導航堆棧內的自定義UIViewController類
工作的非通用功用:
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)
經過多次嘗試後,仍無法正常工作。
任何人都可以幫助我,謝謝。
這是行不通的。它刪除'navigationController'中的所有'UIViewController'棧 – 2015-04-04 04:50:26
已更改的代碼。我在Playground上測試它似乎工作。 – Abdullah 2015-04-04 05:46:52