2015-05-26 47 views
0

我有一個相當複雜的設置,並且正在尋找如何構建我的代碼的建議。當我按下用戶圖片之一併可以通過它們滑動時,我想要做的是類似於twitter的東西。這是我的時刻:如何構建我的iOS代碼?

  • 一個UIViewController子類,它通過一個叫做變量從一臺服務器收集數據,並將其傳遞到UITableViewControllertheData
  • UITableViewController子還收集更多的數據爲用戶滾動到表格視圖的底部並將其附加到theData(即使用分頁)。這個UITableViewController子類在整個應用程序中重用,以便來自不同源的數據可以傳遞給它。
  • 當用戶點擊一個UITableViewCell,一個UIWindow被創建,其具有UIPageViewController裏面。窗口使用UITableViewController作爲代表訪問theData,並從代表在稱爲pageData
  • 變量傳遞theDataUIPageViewControllerUIPageViewController的每一頁是從pageData

加載圖像的UIViewController下一步是在用戶滑動到UIPageViewController中的pageData的末尾時進行分頁。不過,我認爲我的代碼結構不夠好,無法重用UITableViewController中的分頁代碼。請有人可以告訴我如何改進這種代碼結構?

謝謝

編輯

在第一點的UIViewController並不僅僅是下載數據(它在其內具有其它視圖)更多。

我用UIWindow封裝UIPageViewController,因爲我希望它從UITableViewCell的框架擴大和「接管」全屏幕 - 包括狀態欄。

+0

你並不需要創建一個'UIWindow',已經有一個,你只需實例化一個新的'UIViewController'或它的一個子類,目前它/推導航堆棧上。 我不認爲我們可以幫助很多,因爲我們沒有多少你對你的代碼是「不構成」提出一個解決方案 – Erakk

+0

一個想法,這可能是更適用於程序員或代碼審查 –

+0

有一個多更容易解決。轉到github(或其他類似網站)並搜索並找到可用於照片瀏覽的許多現有庫中的一個。 – rmaddy

回答

0

我的建議是創建簡單的服務,您可以與服務器的通信使用。你不需要View控制器。

進一步您可以創建靜態方法,這將使你theData沒有傳遞給它遍佈應用。

關於輕掃,你可以在一個陣列3級的用戶,和相應的滾動,負載附加一個,並釋放不必要的一個。這將有助於您使用內存(如果用戶滑過50個或更多用戶)。

而不是UIWindow,創建從UITableViewController簡單segue到DetailView,或在您的情況,UIPageViewController

+0

嗨,尼克,謝謝你的回答!我已經更新了我的答案給出關於使用'UIViewController' /'UIwindow'的一些更多的信息。當你說服務時,這會是一個與服務器交互的單獨的類/公共函數嗎? – Tometoyou

+0

對於一個UIWindow - 你仍然不需要它。你將有另一個視圖控制器來顯示數據,你可以選擇隱藏任何你想要的。你想在單元格內。 對於服務 - 是的,你可以創建一個簡單的NSObject來處理與服務器的通信,這樣你就可以爲獲取數據分離邏輯,你可以在任何你想要的地方重複使用它,而不需要複製代碼。 – Miknash

+0

好的謝謝。你能多解釋一下/將我鏈接到一篇關於靜態方法如何訪問'theData'的文章?如果'theData'存儲在一個類的實例中,那麼靜態方法將如何訪問它? – Tometoyou