如果你不想創建一個新的控制器 - 不要創建它!
創建您的控制器一次,然後重新使用它們。例如,你可以聲明你的控制器作爲一個單身:
let vc1 = MyViewController1()
let vc2 = MyViewController1()
let vc3 = MyViewController1()
而當你需要推動一些控制器不創建一個新的,但重複使用已經創建:
navigationVC.pushViewController(vc2, animated: true)
的UINavigationController將拋出,如果出現錯誤您將嘗試推送已在導航堆棧中的控制器。所以,你必須從導航堆棧首先除去它:
// vc2 - is a controller that could be in the navigation stack and should be pushed once more
var controllers = navigationVC.viewControllers
if let index = controllers.indexOf(vc2){
controllers.removeAtIndex(index)
}
navigationVC.setViewControllers(controllers, animated: false)
那麼你可以把vc2
如常。如果在您的應用程序中可能,您還應該檢查一個案例,如果vc2
應該在vc2
之後立即執行。
來源
2015-09-11 10:23:43
Avt
您可能正在尋找[UITabBarController](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarController_Class/) –
你是對的。 – Benobab