2015-05-26 48 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