我的觀點很深,但沒有導航控制器綁定它們。我無法使用popToRootViewControllerAnimated,因爲我沒有導航控制器。我該如何回到故事板的初始視圖控制器,以及在解散完成後有什麼回調方法?如何在沒有導航控制器的情況下以編程方式展開5個控制器視圖?
-1
A
回答
0
的Objective-C語言實現
在AppDelegate
或以任何其他Util
類實現的功能
- (void)customPopToRootViewController {
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
//If you are using this method inside AppDelegate then write self.window.rootViewController
NSMutableArray *presentedViewControllers = [NSMutableArray array];
while (topController.presentedViewController) {
[presentedViewControllers addObject:topController.presentedViewController];
topController = topController.presentedViewController;
}
for (UIViewController *vc in presentedViewController) {
[vc dismissViewControllerAnimated:YES completion:nil];
}
}
然後在你當前的視圖控制器中調用這個函數。
[(AppDelegate*)[UIApplication sharedApplication].delegate customPopTopToRootViewController];
+0
和topController中使用的回調方法是什麼? – hunterp
+0
爲什麼你需要一個回調方法?當你關閉視圖控制器時,它會從內存中釋放,現在如果你試圖在你的topViewControlelr中實現一個回調,那麼應用程序會崩潰 –
0
給這個鏡頭。我不確定哪種內存管理問題會深入到5個視圖中,如果有的話,但值得一試。
var storyBoard = UIStoryboard(name: "Main", bundle: nil)
var vc = storyBoard.instantiateInitialViewController() as! CustomViewController
self.presentViewController(vc, animated: true) {() -> Void in
//Do something in this completion block
}
0
您可以通過以下方法刪除視圖。 另外,如果你已經將它們添加爲childViewController,你將不得不刪除它。
//移除子視圖
for (UIView *v in [self.view subviews])
{
[v removeFromSuperview];
}
//刪除child視圖控制器
for (UIViewController * controller in [self childViewControllers])
{
[controller removeFromParentViewController];
}
相關問題
- 1. 在沒有導航控制器的情況下以編程方式更改視圖控制器Swift
- 2. 在沒有導航控制器的情況下導航到另一個視圖控制器
- 3. 如何在沒有導航控制器的情況下創建多個視圖?
- 4. 如何以編程方式推動導航控制器上的下一個視圖控制器?
- 5. 是否可以在沒有導航控制器的情況下推視圖控制器?
- 6. 在沒有導航控制器的情況下返回2個視圖
- 7. 在沒有導航控制器的情況下關閉多個模態視圖
- 8. 如何以編程方式導航導航控制器堆棧?
- 9. self.navigationcontroller在沒有導航項的情況下推送視圖控制器
- 10. 如何以編程方式添加多個導航控制器?
- 11. 如何在沒有UINavigationControler的情況下導航到另一個控制器?
- 12. 以編程方式導航標籤視圖控制器與嵌套導航控制器
- 13. 以編程方式打開已連接到導航控制器的視圖控制器
- 14. 如何以編程方式在視圖中嵌入導航控制器?
- 15. 以編程方式構建/導航導航控制器
- 16. 以編程方式打開視圖控制器,不看導航欄。 Swift 3
- 17. SpringMVC在沒有控制器的情況下提供視圖
- 18. rails 3-在控制器沒有視圖的情況下動作
- 19. 在沒有全屏的情況下將視圖控制器顯示在另一個視圖控制器上
- 20. 如何以編程方式添加導航控制器?
- 21. 如何以編程方式顯示/推動導航控制器
- 22. 如何以編程方式導航到視圖控制器,並通過數據
- 23. 在視圖控制器內添加多個導航控制器?
- 24. 是否可以在沒有導航控制器的情況下使用pushViewController?
- 25. 如何在沒有酒吧或導航控制器的情況下將視圖更改爲視圖?
- 26. 帶有導航控制器的視圖控制器
- 27. 如何調用視圖控制器與導航控制器
- 28. 多個導航控制器中的視圖控制器通信
- 29. 導航模式視圖控制器和導航控制器的層次結構
- 30. 在新的導航控制器中嵌入視圖控制器
您是否考慮過使用導航控制器的功能,然後將其隱藏在每個視圖中,以便保持您喜歡的美感? – user3353890
是的,但我正在尋找更優雅和最簡單的解決方案。 – hunterp
您是否使用segues來呈現每個視圖控制器?如果是這樣,只需使用展開順序 – Paulw11