我试图让 mvvmcross 为一些 iOS 开发工作,如果我有代码我的视图在代码中添加所有必要的控件,我可以让它工作。这行得通,但是以这种方式开发是一个巨大的痛苦。我想使用 xcode 中的 xib 文件来定义接口,但我似乎无法弄清楚如何让它工作。我有一个这样的视图类:
[Register("FirstView")]
public partial class FirstView : MvxViewController
{
public FirstView () : base("FirstView",null)
{
}
public FirstView(IntPtr handle) : base(handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
}
}
我添加了一个名为“FirstView.xib”的 iphone 视图,在 xcode 中打开它,我遇到的第一个问题是它创建了一个视图,而不是视图控制器,所以我可以将类设置为FirstView
. 所以我删除了视图,添加了一个 UIViewController,它让我可以将类设置为FirstView
. 然后我将一个视图拖到我的视图控制器上并添加一个文本框、一个标签和一个按钮。我退出了 xcode,Xamarin 完成了它的工作并创建了我的部分类的另一半。但是,当我尝试在 iPhone 模拟器中运行代码时,它不起作用。它启动然后立即退出而没有显示我的视图。
我在 Xamarin 工作室的应用程序输出窗口中看到一大堆东西,也许这与此有关?
2013-06-06 10:47:13.666 MyAppIPhoneUI[26190:c07] 应用程序窗口应在应用程序启动结束时具有根视图控制器 2013-06-06 10:47:13.668 MyAppIPhoneUI[26190:c07] TouchNavigation:诊断:0.10 导航请求 2013-06-06 10:47:13.691 MyAppIPhoneUI[26190:c07] mvx:诊断:0.13 请求为空 - 假设这是在构造期间调用 ViewDidLoad 的 TabBar 类型情况......现在修补请求- 但请注意施工期间虚拟调用的问题 2013-06-06 10:47:13.697 MyAppIPhoneUI[26190:c07] mvx:警告:0.13 异常屏蔽 NullReferenceException:对象引用未设置为 Cirrious.MvvmCross 的对象实例.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest 请求,IMvxBundle 保存状态)[0x00000]
知道问题可能是什么吗?实际上是否可以在 xib 中定义我的视图并仍然使用 mvvmcross?我看过 slodge 的 YouTube,他使用 xib 来定义 UITableCellView,但不是整个视图。