很长一段时间以来,我一直在研究目标c类的例子,看斯坦福的讲座,并玩一些代码来掌握创建iOS应用程序的诀窍。
然而,有一些事情我找不到一个很好的答案:
- How can I re-use the order-view's ViewController and View in other ViewControllers?
- If I have 4 screens with the same look-and-feel, do I have to simply copy them in the Storyboard? This seems like a pain to main, what if I want to change my background? Or add a button to all of the views? When I create a setup-wizard I don't want to define the look-and-feel for every screen separately.
来自C#背景的我可能必须进入目标-c思维模式:)
在这方面任何帮助都会很好。
发布于 2012-08-12 05:44:22
1) ObjC--类别很容易扭曲你对面临的主要问题的理解。ObjC-类别是完全不必要的。您可以通过子类、对象组合、实际模型中的其他方法或控制器或视图中的某些定制来处理这些扩展。因此,如果您需要格式化数据(例如,模型中存在的数据)以在视图中显示--该任务通常会落在控制器中。就您提供的示例而言:您可以在简单的情况下选择模型请注意,这些类可能是附属类,它们只生成一个模型,或者它们可能是抽象类的多个具体组合。并不是所有的东西都需要在、M-或-V-或-C的定义中直接着陆。您可以在ObjC中使用许多设计模式。将MVC视为Cocoa通常使用的模式--您需要了解它们,您需要知道如何对这些类型进行子类和扩展,但是随着实现逐渐远离Cocoa的库(例如,随着复杂性的增加),这些模式将失去主导地位。
2)他们可以是聪明的。但是,在MVC下,您希望将其实现集中在视图/表示方面。表示信息集合的视图实际上可以执行一些任务,这些任务通常是为控制器保留的--但是,您通常会放弃这样做的实现是一个专用的MONContactView。如果你走这条路,你通常会这样做,以便于重用或实现一个简单的界面。显示有关Contact的信息可能非常复杂--在简单的场景中,这些任务通常由控制器处理。具体来说,MONAwesomeContactView可能不像MONAwesomeContactViewController那么复杂(例如在SLOC中)(除非您有一些非常特殊的绘图或布局要执行)。更常见的做法是设置控制器的联系人,并让控制器将联系人数据推送到视图的字段。同样,对于一个非常专门的子类--在某些情况下,视图可以很好地保持自己的控制器。
( 3a)创建一个类的多个实例没有什么问题。
3b)不需要复制。当发现复制时,我将实现推到实际代码中--程序可以根据需要应用外观和感觉,或者根据需要添加或操作子视图。当然,它们不会出现在Xcode的NIB编辑器中。当然还有其他的方法,但是这种复制经常让我把实现转移到编译的代码上。实现两者之间的良好平衡并不是那么困难(就我个人而言,我的大部分观点都是以编程方式完成的,而不是使用NIB)。
发布于 2012-08-12 05:39:24
https://stackoverflow.com/questions/11919794
复制相似问题