2010-09-18 61 views
-1

爲什麼導航應用程序使用pushViewController而不是像所有其他應用程序一樣使用presentModalViewController?如何修改導航應用程序以替代使用presentModalViewController?這樣做會不是最理想的?爲什麼?pushViewController和導航應用程序?

+0

什麼是downvote? – 2010-09-20 12:35:19

回答

1

導航視圖控制器和模態視圖控制器有不同的用途。第一個用於顯示分層嵌套內容。雖然您要求更詳細的項目信息,但您可以更深入地瞭解堆棧中更詳細的視圖。

模態視圖用於在當前只顯示一個視圖。它適用於像你的應用程序的信息按鈕的東西。

+0

我可以比使用模態視圖的一個視圖更深入。 – 2010-09-18 03:22:26

+0

但它並不意味着你應該 – 2010-09-19 00:23:53

+0

有沒有理由你不應該? – 2010-09-20 08:06:53

1

你的問題有點像是問爲什麼UISplitViewControllers使用兩個控制器並排列他們的觀點。也就是,UINavigationControllers使用pushViewController:來管理他們的UIViewController實例棧,因爲這是Apple如何決定UINavigationControllers應該如何工作。當動畫進入視圖時,推送的視圖將從右側滑入,當視圖彈出時,舊視圖從左側滑入。

一個UIViewController的任何實例可以使用presentModalViewController於其中防止用戶用下面的視圖交互的方式在它自己的視圖的頂部顯示的另一個UIViewController的圖。根據設備(iPhone,iPad)的不同,您可以選擇新顯示視圖的視覺外觀以及用於查看視頻的動畫。

沒有什麼能夠阻止你編寫一個應用程序,該應用程序只保留一個視圖,使用presentModalViewController調出下一個視圖,但沒有理由使用UINavigationController這樣做。我從來沒有檢查過內存消耗是否有意義的差異,也沒有其他可以衡量的事情來判斷從技術角度來看這樣做是否「次優」,但這肯定不是標準,因此可能不是最優的用戶體驗視角。對於你的應用來說,這是否正確取決於用戶是否認爲交互對他們有意義。

0

導航視圖控制器使用Stack.Your導航的概念是存儲在堆棧,這就是爲什麼你可以把&彈出查看這表明你可以用它們的詳細視圖....製作的觀點

層次

而模態視圖控制器一次只顯示一個視圖......這通常用於應用程序中的新流程。