我有幾個視圖控制器嵌入在導航控制器的故事板。 由於故事板後面視圖中的導航邏輯,後退按鈕(位於導航欄左上角)不會返回到第一個視圖。我想知道在哪裏以及如何更改第二個視圖的後退按鈕的這種行爲。欣賞任何想法,例子。如何強制返回按鈕轉到第一個視圖控制器(swift)
3
A
回答
1
如果你的意思是說:防止後退按鈕導航到上一個控制器,並移動到第一個視圖控制器: 你可以做到這一點通過創建自定義後退按鈕 - 在故事板拖動一個按鈕,左上方導航欄,並將其連接到您的視圖控制器。在您的自定義後退按鈕的選擇寫:
[self.navigationController popToRootViewControllerAnimated:YES]
0
假設你有一個視圖控制器棧,如:VC1> VC2> VC3,並且要在VC3攻回來的時候要回VC1,那麼你可以在設置該代碼VC2:
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:(UIBarButtonItemStylePlain) target:self action:@selector(backToVC1)]];
然後,總是在VC2:
- (void)backToVC1
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
4
自定義後退按鈕似乎是最好的解決方案。動作方法內部的代碼看起來像在迅速以下幾點:
self.navigationController?.popToRootViewControllerAnimated(true)
//只要改變時真亦假,如果你不希望它做動畫。
我希望這有助於(如果你還沒有找到答案)。乾杯!
3
當然,你可以實現一個自定義後退按鈕。但也有一個很好的方法來繼續使用默認按鈕。
在致電super.viewWillDisappear()
之前,只需檢查當前viewController是否仍位於viewWillDisappear
的導航堆棧中。如果不是,後退按鈕已被按下。然後你可以做popToRootViewControllerAnimated
。
override func viewWillDisappear(animated: Bool) {
if (navigationController?.viewControllers)!.contains(self) {
// back button was pressed
self.navigationController?.popToRootViewControllerAnimated(animated)
}
super.viewWillDisappear(animated)
}
相關問題
- 1. 如何使用後退按鈕從第二個視圖控制器轉到第一個視圖控制器?
- 2. iphone - 3個視圖控制器如何返回到第一個
- 3. 從第四個視圖控制器轉到根視圖控制器swift
- 4. 如何解僱一個標籤欄控制器,並返回到前一個視圖控制器按鈕
- 5. 視圖控制器按鈕連接Swift
- 6. Swift:如何使用XLPagerTabStrip中的子視圖控制器回到第一個視圖控制器
- 7. 製作TabBarController按鈕鏈接到第一視圖控制器
- 8. 如何從控制器返回一個視圖到一個iFrame
- 9. Swift:如何隱藏標籤欄控制器的第一個視圖控制器上的後退按鈕?
- 10. Swift - 如何從一個視圖控制器轉移到另一個視圖控制器?
- 11. 解除視圖控制器不會返回到前一個視圖控制器
- 12. 另一個視圖控制器中的Swift隱藏按鈕
- 13. 使用按鈕從一個視圖控制器轉換到另一個視圖控制器
- 14. 如何返回到前一個視圖控制器?
- 15. 返回一個對象返回到根視圖控制器
- 16. 如何通過按鈕從一個視圖控制器推到另一個視圖控制器?
- 17. ios強制返回按鈕樣式,無導航控制器
- 18. 如何使用按鈕返回到我的第一個視圖
- 19. 基於第一視圖控制器中按下的按鈕,xcode在第二視圖控制器中打開url
- 20. 轉到上一個視圖控制器
- 21. 如何獲得一個uinavigation欄返回按鈕返回到anthother視圖控制器
- 22. 如何使用一個按鈕跳轉到不同的視圖控制器?
- 23. 轉到Gamescene回到視圖控制器
- 24. Swift IOS:一個視圖控制器中的幾個按鈕,控制另一個視圖控制器中的圖像視圖顯示
- 25. 如何將UI ImageView從一個視圖控制器傳遞到另一個視圖控制器? swift 3
- 26. 返回到父視圖-UINavigation控制器
- 27. Swift在兩個視圖控制器上使用後退按鈕
- 28. 第二個視圖控制器崩潰應用程序的簡單按鈕/ Swift
- 29. 如何將數據從多個控制器返回到視圖?
- 30. Swift Link按鈕到控制器
是Objective-C的?我試圖在Swift中做,不知道如何映射它,但感謝想法:) – 2015-03-14 03:42:26