我只需要在不重新初始化對象的情況下進行導航,它可以通過popview導航完成,但我需要導航到指定的ViewController而不是以前的視圖控制器。我已經發布了另一個question對於一個仍然PushView導航無需重新初始化UIViewController中的對象
0
A
回答
0
沒有反應如果使用界面生成器:
在要導航回視圖控制器的實現(.M)文件,添加此方法:
-(IBAction)prepareForUnwind<NameOfViewController>:(UIStoryboardSegue *)segue
{
}
沒有<>。然後,在界面生成器中,您正試圖從中導航,您需要創建一個退出segue。如果你有一個取消按鈕,你可以按CTRL +拖動到視圖控制器最上方的小橙色退出符號,然後釋放並選擇你創建的prepareForUnwind方法。如果您沒有專門讓您倒退的按鈕,並且想要以編程方式執行此操作,則可以按Ctrl +從視圖控制器頂部的黃色圖標拖動到橙色退出圖標,選擇展開方法,然後看看剛剛創建的segue的視圖層次結構。點擊它,然後轉到屬性檢查器並更改標識符。然後,在你從導航視圖控制器的實現文件,調用此方法:
[self performSegueWithIdentifier:@"whateverYouNamedIt" sender:self];
像這樣的開卷SEGUE會倒流通過你的籌碼,直到找到具有您叫回卷方法的視圖控制器,然後將所有視圖控制器彈出該視圖控制器和當前視圖控制器之間。您可以在每個視圖控制器上使用prepareForUnwind<NameOfViewController>
方法,並使用它來倒退。它使故事板看起來更清晰,因爲unwind segues不會在視圖層次結構中顯示。
編輯 - 只是想補充一點,如果你想從源視圖控制器傳遞任何信息到目標視圖控制器,你在目標視圖控制器的prepareForUnwindSegue方法內部執行該操作,就像你使用prepareForSegue方法在源視圖控制器中前進。這裏有一個例子:
-(IBAction)PrepareForUnwindHome:(UIStoryboardSegue *)segue
{
OtherViewController *sourceView = segue.sourceViewController;
_NSStringVariable = sourceView.NSStringVariable;
}
這將設置NSStringVariable您從您從導航源視圖控制器導航回至NSStringVariable上一個視圖控制器。
相關問題
- 1. c中的對象重新初始化#
- 2. 重新初始化航點
- 3. AngularJS重新初始化的對象
- 4. 重新初始化的NSMutableString對象
- 5. 需要初始化對象
- 6. 重新初始化一個Ruby對象
- 7. 無法初始化新對象
- 8. 初始化導航欄
- 9. 在新對象中初始化模擬
- 10. 用ARC重新初始化/重新分配對象
- 11. 防止重新定位導航初始化jquery mmenu
- 12. Angular 2導航重新初始化所有服務和組件
- 13. 初始化父對象後初始化相關的對象
- 14. 初始化後的UIViewController dealloc
- 15. 初始化對象
- 16. 對象初始化
- 17. 初始化對象
- 18. 初始化對象
- 19. 對象初始化
- 20. 更新導航無需重新加載
- 21. 什麼是Android中Thread對象重新初始化的成本
- 22. 的JavaScript - 更新/重新初始化對象
- 23. AspectJ:跟蹤新的對象初始化
- 24. 初始化控件的屬性無需重新繪製
- 25. 非重疊對象初始化
- 26. C++ - 如何重複初始化對象?
- 27. 初始化和重用對象
- 28. 初始化自定義UIViewController
- 29. UIViewController子類初始化
- 30. LINQ的初始化對象
你做了什麼或嘗試過了嗎?發佈您的代碼.... – 2015-04-06 05:15:52