好吧,"没有得到它"太苛刻了; 我已经知道它对我来说是一个逻辑设置,但它似乎并不是iOS认为合乎逻辑的.所以我没有得到什么.
假设我有一个显示两条信息的应用程序; 日期和表格.根据MVC方法,我在这里有三个MVC,一个用于日期,一个用于表,一个用于接收这两个MCV并将其制作成屏幕,将它们连接起来.
主MVC知道它想要如何/在哪里布局两个子MVC.每个细节MVC仅在主MVC指定的范围内处理其自己的孩子.就像是:
- (void)loadView {
MVC* mvc1 = [[MVC1 alloc] initwithFrame:...]
[self.view addSubview:mvc1.view];
MVC* mvc2 = [[MVC2 alloc] initwithFrame:...]
[self.view addSubview:mvc2.view];
}
Run Code Online (Sandbox Code Playgroud)
如果上面是逻辑的(这对我来说),那么我希望任何MVC类都有一个构造函数"initWithFrame".但MVC没有,只有视图才有这个.
为什么?
如何正确布局嵌套的MVC?(当然我没有这两个,但细节MVC再次有子MVC.)
谢谢大家的回复.我将研究提供的链接.
让我再试一次解释我的问题,希望能够更清楚地说明问题.请注意,我已经发现我的视图与iOS不匹配,因为我不喜欢我的代码所在的位置.
是的,我正在将UIViewController称为"MVC",因为它目前对我来说实现了MVC的所有方面; 它有控制器代码和嵌入式视图,加上控制器通常也保存并提供数据(所有TableView示例都像这样实现它).
MVC可以存在于多个层面; 基本上UITextField可以(应该?)是一个MVC; 有一个视图,但也涉及控制器逻辑,你不想与其他代码混合.封装.例如:Java的Swing JTextField有一个MVC.JTable,JList也是如此......嵌套在其他MVC中的多个MVC模式构建整个屏幕.
这是我所期望的,当某个平台说它使用MVC模式时.因此,当我对表进行编码时,我创建了一个MVC,并且只发送带有日期作为参数的loadData消息.它需要照顾其余部分.我有一个可以滑入的细节MVC; 然后我告诉它需要显示的对象,它需要照顾其余部分.封装.
所以我有很多带嵌入式UIViews的UIViewControllers.这不是做到这一点的方式......