我正在尝试使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 Studio的应用程序输出窗口中看到了很多东西,也许这相关吗?
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 savedState)处[0x00000]
知道可能是什么问题吗?实际上可以在xib中定义我的视图并仍然使用mvvmcross吗?我看过slodge的YouTube,他在其中使用xib定义了UITableCellView,但没有定义整个视图。
最佳答案
从跟踪来看,“不开始”问题与以下方面有关:
未将对象引用设置为Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel上的对象实例
我不确定是什么原因引起的-从跟踪和描述中很难得知-如果将示例项目放在某个地方,则来自mvx的人可以查看一下。
另外,还有更多有关XIB的最新视频
这些包含在此N + 1索引中-http://mvvmcross.wordpress.com
特别是,请参阅:
中的FirstView / XIB工作于22:40开始
http://www.youtube.com/watch?feature=player_detailpage&v=UC2r4mmj3UI#t=22m40中的几种视图(尽管不确定为什么我说我当时不能在Mac上构建-可能是由于设置/激活问题:/)
关于iphone - 使用Mvvmcross和Xibs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16965532/