爲什麼導航應用程序使用pushViewController
而不是像所有其他應用程序一樣使用presentModalViewController
?如何修改導航應用程序以替代使用presentModalViewController
?這樣做會不是最理想的?爲什麼?pushViewController和導航應用程序?
回答
導航視圖控制器和模態視圖控制器有不同的用途。第一個用於顯示分層嵌套內容。雖然您要求更詳細的項目信息,但您可以更深入地瞭解堆棧中更詳細的視圖。
模態視圖用於在當前只顯示一個視圖。它適用於像你的應用程序的信息按鈕的東西。
我可以比使用模態視圖的一個視圖更深入。 – 2010-09-18 03:22:26
但它並不意味着你應該 – 2010-09-19 00:23:53
有沒有理由你不應該? – 2010-09-20 08:06:53
你的問題有點像是問爲什麼UISplitViewControllers
使用兩個控制器並排列他們的觀點。也就是,UINavigationControllers
使用pushViewController:
來管理他們的UIViewController
實例棧,因爲這是Apple如何決定UINavigationControllers
應該如何工作。當動畫進入視圖時,推送的視圖將從右側滑入,當視圖彈出時,舊視圖從左側滑入。
一個UIViewController
的任何實例可以使用presentModalViewController
於其中防止用戶用下面的視圖交互的方式在它自己的視圖的頂部顯示的另一個UIViewController
的圖。根據設備(iPhone,iPad)的不同,您可以選擇新顯示視圖的視覺外觀以及用於查看視頻的動畫。
沒有什麼能夠阻止你編寫一個應用程序,該應用程序只保留一個視圖,使用presentModalViewController
調出下一個視圖,但沒有理由使用UINavigationController
這樣做。我從來沒有檢查過內存消耗是否有意義的差異,也沒有其他可以衡量的事情來判斷從技術角度來看這樣做是否「次優」,但這肯定不是標準,因此可能不是最優的用戶體驗視角。對於你的應用來說,這是否正確取決於用戶是否認爲交互對他們有意義。
導航視圖控制器使用Stack.Your導航的概念是存儲在堆棧,這就是爲什麼你可以把&彈出查看這表明你可以用它們的詳細視圖....製作的觀點
層次而模態視圖控制器一次只顯示一個視圖......這通常用於應用程序中的新流程。
- 1. 用UIWebView和UITableView導航應用程序
- 2. WPF應用程序(綁定和導航)
- 3. 結合TabBar和導航欄如何pushViewController?
- 4. 集成iPhone應用程序和Xpages應用程序的導航
- 5. SL'Composite'導航應用程序
- 6. Silverlight導航應用程序
- 7. Spotify應用程序導航
- 8. 導航控制器:pushViewController
- 9. 在iOS應用程序中使用xib導航應用程序
- 10. iOS應用程序凍結對PushViewController
- 11. 使用React-Native導航應用程序
- 12. 導航回用Silverlight應用程序SSRS
- 13. bootstrap導航欄和按鈕導軌應用程序
- 14. 用引導程序導航
- 15. TabBar應用程序或導航欄應用程序?
- 16. pushViewController不能用tabbar和導航條顯示UIView/Nib
- 17. Silverlight導航應用程序中的導航歷史記錄
- 18. Android應用程序導航|自定義導航
- 19. Square connect API - 導航迴應用程序
- 20. Android方式導航應用程序
- 21. 代表應用程序導航
- 22. 返回導航在iphone應用程序
- 23. JSF QUIZZ應用程序導航
- 24. Backbonejs應用程序導航到`#users`
- 25. 基於導航的iphone應用程序
- 26. 導航應用程序 - 後退按鈕
- 27. 導航時,應用程序加載
- 28. Fiori - 跨應用程序導航
- 29. 在應用程序中導航
- 30. 導航基於MVVM的應用程序
什麼是downvote? – 2010-09-20 12:35:19