Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用Mvvmcross和Xibs_Iphone_Ios_Xamarin_Mvvmcross - Fatal编程技术网

Iphone 使用Mvvmcross和Xibs

Iphone 使用Mvvmcross和Xibs,iphone,ios,xamarin,mvvmcross,Iphone,Ios,Xamarin,Mvvmcross,我正试图让mvvmcross为一些iOS开发工作,如果我让代码视图在代码中添加所有必要的控件,我就能让它工作。这是可行的,但以这种方式发展是一个巨大的痛苦。我想使用xcode中的xib文件来定义接口,但我似乎不知道如何让它工作。我有这样一个视图类: [Register("FirstView")] public partial class FirstView : MvxViewController { public FirstView () : base("FirstView",null

我正试图让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]触摸导航:诊断:0.10导航请求 2013-06-06 10:47:13.691 MyAppIPhoneUI[26190:c07]mvx:Diagnostic:0.13请求为空-假设这是一种选项卡类型的情况,在构造期间调用ViewDidLoad。。。现在就修补请求-但是在构建过程中要注意虚拟调用的问题 2013-06-06 10:47:13.697 MyAppIPhoneUI[26190:c07]mvx:警告:0.13异常屏蔽NullReferenceException:对象引用未设置为对象的实例 在Cirrius.MvvmCross.ViewModels.MVXViewModelLoadLoadViewModel(Cirrius.MvvmCross.ViewModels.MvxViewModelRequest请求,IMvxBundle保存状态)[0x00000]


知道问题出在哪里吗?在xib中定义我的视图并且仍然使用mvvmcross,这真的可能吗?我看过slodge的YouTube,其中他使用xib定义UITableCellView,但不是整个视图。

从跟踪来看,“未启动”问题与:

对象引用未设置为Cirries.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel上的对象实例

我不确定是什么原因造成的-从跟踪和描述很难区分-如果你把一个样本项目放在某个地方,那么mvx的人可以看一看


另外,还有一些关于使用XIB的最新视频

这些包含在本N+1索引中-

具体见:

  • FirstView/XIB工作于22:40开始
  • 中的几个视图(虽然不确定当时我为什么说无法在Mac上构建-可能是由于安装/激活问题:/)

嗯?古怪的我删除了我的视图类和xib,并(几乎)完全按照您在视频中所做的操作添加了一个视图控制器,它成功了。也许问题在于我最初拥有的是一个视图,而不是一个视图控制器。我以前就开始看那个视频了,但没看那么深。谢谢我有一件奇怪的事情,我在Xamarin中的解决方案现在显示了FirstModel.designer.cs的两个副本和FirstModel.xib的两个副本(一个在视图文件夹中,一个在根文件夹中),这是相当奇怪的。我猜前面的问题可能与某些“所有者”或“第一响应者”或其他隐藏在xib中的环境有关-4年来我一直在处理这些事情,但我仍然不理解它们。。。如果重新启动XS,designer文件的两个副本将有望消失,但无论如何都要用xamarin支持将其记录为一个bug(它确实需要修复),再次感谢Stuart。我刚刚开始iOS开发,感觉xcode在这条路上的每一步都在积极地与我抗争!我过去在WPF方面做了很多工作,非常感谢您在mvvmcross方面的工作,帮助我用一些熟悉的东西填补了空白。