我正在尝试让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:Diagnostic:0.10需要导航 2013-06-06 10:47:13.691 MyAppIPhoneUI [26190:c07] mvx:诊断:0.13请求为空 - 假设这是一个TabBar类型的情况,在构建期间调用ViewDidLoad ...现在修补请求 - 但请注意施工期间虚拟呼叫的问题 2013-06-06 10:47:13.697 MyAppIPhoneUI [26190:c07] mvx:警告:0.13异常屏蔽NullReferenceException:对象引用未设置为对象的实例 在Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest请求,IMvxBundle savedState)[0x00000]
知道问题可能是什么?实际上是否可以在xib中定义我的视图并仍使用mvvmcross?我见过slodge的YouTube,他使用xib来定义UITableCellView,但不是整个视图。
答案 0 :(得分:1)
从跟踪开始,“不开始”问题与:
有关对象引用未设置为Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel
中对象的实例
我不确定是什么造成的 - 从跟踪和描述中很难说 - 如果你把一个示例项目放在某个地方,那么mvx的某个人可以看看。
或者,还有一些用于使用XIB的最新视频
这些包含在此N + 1索引中 - http://mvvmcross.wordpress.com
特别参见: