Yug*_*dle 9 cocoa-touch uiviewcontroller uiview ios
从Web堆栈过渡到iOS仙境,我发现很难理解如何重新构建我对MVC的想法并在iOS上有效地构建我的UI.
考虑为我创建视图的最佳方法是什么self.view:
UIView类的视图UIViewController与关联UIView类一样发生的视图.UIViewController与内联一样发生的视图UIView------------------------------
| A |
| |
| -------------------- |
| | B | |
| | | |
| | -------------- | |
| | | C | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | -------------- | |
| | | |
| -------------------- |
| |
------------------------------
Run Code Online (Sandbox Code Playgroud)
A可能[self addView:B_view](如果B只是UIView)A也可能[self addView:B_viewController.view](如果B有一个视图控制器)A 也可能 [B setChildView:C_view]B_viewController.delegate = A&C_viewController.delegate = AB_viewController.delegate = A&C_view.delegate = B逻辑分散在委托,viewControllers和视图中.
除了可以改善以上经验的"抽象井和关注点分离"这一论点.我相信它的viewController和viewController.view的流失很容易导致广泛的耦合.
这很快变得令人困惑,感觉就像意大利面条,尽管付出了努力但很难控制.
那说,
也许,您正在处理的是 MVC - 大规模视图控制器的困境。这是一篇有趣的读物,其中 Marcus 谈到通过将代码放在其所属的位置(网络层、持久层或表示层(理想情况下是视图控制器))来有效地管理代码。
http://www.cimgf.com/2015/09/21/massive-view-controllers/
除了委托模式之外,我们还有基于块/闭包的方法,可能有助于清理代码。
总的来说,Robert C. Martin 的简洁代码方法在这里可能会有所帮助。通过称为 VIPER 架构的方式来实现它。这是有关该内容的教程。
https://www.objc.io/issues/13-architecture/viper/
Objective C 作为一种包含委托模式的语言,使用它来解决大多数问题是一种标准做法。
欢迎来到 iOS 平台。
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |