我有一個iOS應用程序,它包含一個「Overview」場景作爲初始視圖控制器,一個「EntryList」場景和一個「NewEntry」場景。它們由一個導航控制器組成,並按照所提到的順序連接,使用show(push)segues。 NewEntry視圖控制器具有展開到EntryList控制器的「Save」和「Cancel」菜單欄項目。快速操作後處理對話
我在使用performSegueWithIdentifier
直接跳轉到NewEntry控制器的應用程序圖標上添加了一個快速操作,該快捷操作從導航控制器到NewEntry控制器。
當應用程序暫停運行後使用快速操作時,無論先前的內容如何,新的NewEntry實例都會被推入導航堆棧。所以,甚至可以堆疊多個NewEntry實例。在這種情況下,任何剩餘的舊的NewEntry實例都可能被丟棄。
在應用程序終止後使用Quick Action時,總是會首先創建一個新的Overview實例(因爲是初始導航控制器之後的第一個實際VC,我想呢?),然後NewEntry被推送。在這種情況下沒有EntryList場景。
當按下取消或保存項目時,NewEntry場景將被丟棄並採取適當的措施,使用戶處於應用程序之前的狀態,否則將在用戶處於應用程序狀態。
我的問題:
- 什麼是正確的行爲的應用程序應該執行?
- 我該如何實現該行爲?
- 什麼是實現所有段落的「最佳實踐」,尤其是當NewEntry場景不一定在EntryList場景之後被推送時?
我想避開「UI麪條代碼」,導航堆棧黑客等