我對iOS開發非常陌生,在嘗試瞭解UINavigationController
對象時遇到困難。我猜大多數應用程序使用它來組織他們的所有窗口,但我不確定。UINavigationController是否適合頁面循環?
當應用程序頁面是層次結構的成員時,它似乎特別有用,但我的應用程序項目不會以這種方式組織它的頁面。相反,它將更像一個週期,例如用4頁:
甲 - >乙 - 「ç - > d - > A.
是該模式與UINavigationController
兼容或做我必須使用一些替代?
我對iOS開發非常陌生,在嘗試瞭解UINavigationController
對象時遇到困難。我猜大多數應用程序使用它來組織他們的所有窗口,但我不確定。UINavigationController是否適合頁面循環?
當應用程序頁面是層次結構的成員時,它似乎特別有用,但我的應用程序項目不會以這種方式組織它的頁面。相反,它將更像一個週期,例如用4頁:
甲 - >乙 - 「ç - > d - > A.
是該模式與UINavigationController
兼容或做我必須使用一些替代?
您可以自由地將同一控制器類的多個實例推送到UINavigation控制器上,但是它維護的結構是堆棧。您不能在堆棧中多次重複使用相同的控制器實例,並且堆棧中的每個控制器都保留在內存中。您可能不希望構建任意深度的堆棧,因爲它們將佔用大量資源,並且許多級別的「後退」導航會變得迷失方向。
參見pushViewController:animated:其中指出:
視圖控制器推到堆棧上。該對象不能是標籤欄控制器。如果視圖控制器已經在導航堆棧上,則此方法會引發異常。
一個UINavigationController
不是因爲UINavigationController
行爲就像一個堆棧建築UIViewControllers
一個無休止的循環是個好主意。每推UIViewController
將被保留並消耗內存。此外,重用UIViewControllers
來構建循環並不是(很容易)。
這可以歸檔爲UIPageViewController
它允許重複使用所有的UIViewControllers
。
Cycling from last to first (and vice versa) with UIPageViewController
一個UINavigationController管理的圖控制器(頁)的 「棧」,所以它可能是不恰當的。你可以使用UIPageViewController或UIScrollView和UIPageController – Paulw11