2017-09-02 45 views
0

我有點不確定我們應該/必須在我們的UIViewController對象之間建立親子關係的時間和原因。考慮一個類似Twitter的應用程序,其中包含4個部分的標籤欄。我們假設每個節根UIViewController(4之中)是父容器的子節點,並且該節中的每個子節點都是其節視圖控制器的子節點。這很有道理。在UINavigationController中創建UIViewControllers之間的父/子關係?

但是在Twitter中,例如,每個部分可能有自己的UINavigationController,因此,它自己的獨立導航堆棧。因此,可能存在這樣一種情況,即用戶在兩個單獨的部分中同時查看相同的確切推文。在那些情況下,推文是兩個不同的孩子與兩個不同的父母嗎?

蘋果:

一個UINavigationController對象通過 分層數據集支持導航。導航界面一次顯示一個子視圖控制器。

這是否意味着UINavigationController推視圖控制器時到其堆棧還是應該當一個新的視圖控制器推這個做手工創建自己的親子關係?並且,在Twitter示例中,考慮到可能的重疊,在UINavigationController堆棧中有多大的親子關係?

如果有人能指向我的文章/視頻/等關於iOS中的親子關係,他們的意義,陷阱,做什麼和不該做什麼,我真的很感激它,因爲我找不到任何我。

+0

我認爲你的問題是一個灰色的區域,是脫離主題,屬於要求教程的類別,其餘的問題可能已經或可能沒有得到答案。我不確定但是,我回答了你的問題,你應該避免將來出現這樣的問題,而是提出一個問題,你曾經嘗試過什麼,失敗等等。 – 2017-09-02 16:37:33

+0

恭敬地說,SO不僅僅是爲了明確的問題,或者是當事情失敗時。對於那些提出廣泛概念的具體問題的人來說,我非常好,尤其是那些文獻稀少的重要問題,因爲他們通常比具有精確特異性的問題更具實用性。恕我直言,要求開發人員把時間用於做事,直到他們休息時通常應該避免。不過,我感謝你的回答! – sconewolf

+0

我同意你的觀點,正如我所說的,我不確定,因爲你在同一篇文章中特別提出了幾個問題,我認爲這可能是有效的,這就是我回答的原因。但是,向第三方網站和指南尋求指導屬於「主題外」類別,即使它能幫助人們如您所說的那樣,鏈接和第三方網站也不能保證始終工作並保持正常運行,並且答案/解決方案應該在SO上顯示。這就是爲什麼我回答解決方案,並在我的答案中包含鏈接,但我的答案仍然可以理解和有效,沒有鏈接:) – 2017-09-02 17:24:43

回答

1

「這是推文,在這些情況下,兩個獨立的孩子,以兩個不同的父母?」兩個 。

這取決於你的意思是「Tweet」。 「Tweet」可以是相同的對象,兩個不同的對象具有相同的視覺內容。兩者都是可能的,並且沒有「最佳實踐」,完全取決於您的使用案例以及您想實現的目標。

如果一個對象出現在屏幕上,在UITableView中(如在Twitter應用程序中),則不會使UITableView或UIViewController成爲對象「parent」。

至於Twitter應用程序(我不是應用程序的用戶),我猜這是同一個對象,在兩個不同的地方展示。

這怎麼可能? Core Data< -這實際上是解決您的問題的方法。

這是否意味着UINavigationController的產生推視圖控制器,當自己的 親子關係到其 堆棧

是 -

中的viewController參數的對象成爲導航堆棧上的頂視圖控制器。推動視圖控制器會將其視圖嵌入到導航界面中。如果動畫參數爲YES,則將視圖動畫到位;否則,視圖只顯示在其最終位置。 除了在堆棧頂部顯示與新視圖控制器關聯的視圖之外,此方法還相應地更新了導航欄和工具欄。有關導航欄如何更新的信息,請參閱更新導航欄。取自

引用:Apple documentations

或應此必須手動完成時一個新的視圖控制器是

推?

沒有

而且,在Twitter的例子,多麼有必要的是它有一個UINavigationController堆棧 父子關係給予 可能的重疊?

閱讀關於MVC structure,並停止混合UIViewControllers-Navigationcontrollers與你想要顯示在UI中的對象和內容。我認爲你的問題是你還沒有掌握how object oriented language works,或至少如何在iOS中實現它。更新你的對象,也應該更新它在你的應用程序中展示的地方,在每個UIViewController中(正如我所理解的你想要實現的那樣)。這是CoreData和NSFetchedResultsController進入圖片的地方。

此外,讀取的結果的控制器,可選的顯示器改變 到在相關聯的被管理對象的上下文對象,並報告在設置爲它的代表結果 改變(請參閱控制器的 代表)。

也有很多tutorials如果你需要處理this manually沒有NSFetchedResultsController的幫助,那也可以做。只要搜索和谷歌將提供。