我有一个 UIView 子类,其中包含一些标签、一个 tableview 和一些其他部分。它目前是 tableview 的委托和数据源,还管理许多 UI 操作,这些操作都不依赖于数据。例如,当按下“编辑”按钮时,它知道如何更新其控件,但是当按下“保存”时,除了将控件切换回之前的状态之外,它不会做任何事情。所有这些都是在代码中完成的,我在这个应用程序中根本没有使用 IB。
我现在想深入了解它可能引发的所有数据模型更改。但我想把这些放在一个新的控制器类中,我想这是符合 MVC 的做事方式。我不知道怎么去那里。
首先,我需要创建一个自定义控制器类。我是否应该从 UIView 子类中公开一些控件,以便视图控制器可以访问它们?例如,我需要在视图中读取和写入文本字段,那么我应该为此提供一个 getter/setter 吗?
其次,tableview - 而不是 UIView 作为委托,我是否也应该公开它,并使视图控制器成为委托?即来自 UIViewController 的 view.tableView.delegate = self?
最后,如何从另一个视图启动视图?具体来说,这是一个类似于天气应用程序的分页滚动视图应用程序,因此我有一个 mainView UIView,它指定单个分页滚动视图,然后添加多个自定义 UIView,每个页面一个。如何替换 [scrollView addSubview:myCustomView] 而添加 viewController?以及如何将视图连接到它的控制器,反之亦然?
我之前没有在没有 IB 的情况下尝试过所有这些,所以感谢您的帮助。