单视图控制器与MonoTouch中的多个视图

问题描述:

我有一个iPad应用程序,它有一个主ViewController和它的主视图像往常一样,但我有一些覆盖(实现为单独的视图)。我希望所有这些视图都由主视图控制器控制/拥有。单视图控制器与MonoTouch中的多个视图

覆盖视图集被打包成一个XIB(仅用于IB设计目的,没有代码),并从主视图控制器手动加载,并为每个视图分别转换为相应的View类,作为单独实现每个.cs文件。

一切工作正常,但因为在视图XIB中,所有者被设置为主ViewController类(为了生成事件,插座的设计器代码),它还为主视图控制器类生成了Register属性,它与已经在主视图控制器XIB设计器文件中生成的相同的寄存器属性相同。

我的问题是:有没有办法阻止MonoTouch/IB为视图XIB自动生成Register属性?

感谢, 佩德罗

我使用的XCode/IB 3.2.6,4.0.5 MonoTouch的,MonoDevelop的2.4.2,MonoFramework 2.10.4

+0

[XIB代](http://ios.xamarin.com/Documentation/XIB_Code_Generation)它是关于交叉XIB场景不明确。 –

+0

我实现了一个基于.NET设计模式的解决方案,当*允许我在几个小时内发布它。 –

好吧,我实现了一个解决方案,它满足我以前的要求但有一些缺点,可能适用于某些场景,而不适合其他人使用。

我在后面的XIB /代码中实现了我的主视图控制器,并将其命名为MainBaseViewController。它只有最小的UI元素,因为它主要是所有其他视图的可视化容器。然后,我在一个名为MainViewController的独立.cs文件中创建了一个类(从MainBaseViewController继承而来),它是一个分类类,用于连接由视图XIB生成的设计器代码。该类将保存视图控制器的所有逻辑。唯一的缺点是MainBaseViewController中的任何UI元素(出口)都将由MonoTouch生成为私有,并且我需要在类实现中创建一些受保护的访问器,但它的确定是因为它只是视图插座(但这可能是如果基XIB有许多控制)问题

恢复:为

  • 的MainBaseViewController类和厦门国际银行将有保护的存取ny网点,并且只有应用程序中其他视图的基本UI容器。

  • 的MainViewController是一个cs文件,并且是从MainBaseViewController继承的部分类,实现

  • 的意见存储在MainViews XIB的视图控制器的所有逻辑(管理所有其它视图)(其中没有代码),视图的文件所有者是MainViewController类,它生成MainViewController类可访问的所有插座和事件。

  • 单独的.cs文件为视图XIB中包含的每个视图实现了每个特定的逻辑,并且它是在主控制器从视图XIB动态加载视图时创建的。

该解决方案允许以存储在另一个(除了UI)和特定的视图逻辑SEPA

任何其它溶液或更好的设计图案在一个单独的文件中的视图,该视图控制器逻辑?另一个更简单的选择是只粘贴主控制器XIb内的所有视图,失去控制器和视图的独立性。

谢谢,佩德罗

上MonoTouch的文档中