我是Xamarin和MVVMCross的新手。所以我创建了2个视图。登录和注册。我在登录时有一个按钮转到注册视图,我将在Login的ViewModel中使用此代码:
... ORDER By Featured_Flag DESC, WEIGHT() DESC
确实可以使注册页打开。但是,一旦我在Register视图(textEdit)上为单个对象分配Name,当我点击Register按钮时应用程序崩溃。
以下是错误消息:
Xamarin.iOS:收到未处理的ObjectiveC异常: NSUnknownKeyException [ setValue:forUndefinedKey:]:此类不是键值 符合编码的密钥regNameEdit。
该视图也已分配给其“CreateAccount”类。但我注意到班级声明在“// method when user tap register button
public IMvxCommand NavigateRegister
{
get { return new MvxCommand(() => ShowViewModel<RegisterViewModel>()); }
}
”行中已经“部分”变暗。这是这个班级和第一个班级唯一明显的区别。
public partial class CreateAccount : MvxViewController
Bind(regNameEdit)也是一个错误(仍未检测到textedit)
答案 0 :(得分:1)
这通常意味着在regNameEdit
的情况下,View / ViewController类中未定义a控件。
确保为此Edit创建了后面的属性,并且分配给XIB的类是包含此属性的类。
如果您正在使用Xamarin Studio Designer,则可以创建back属性,在XIB / StoryBoard中选择UIControl并设置名称,然后输入。
这将创建一个具有您在ViewController中可以访问的名称的属性。
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.MyUITextField.Text = string.Empty;
}
<强>更新强>
使用Storyboard时:
尝试此操作:从TextField中删除名称,并从ViewController类中删除名称,然后清理项目并重建。将类重新添加到ViewController,但在执行此操作时单击底部的黄色图标,然后输入名称并按Enter键。继续使用TextField,选择它输入名称并按Enter键。
更新#2
使用XIB时 当您从菜单创建ViewController时,Xamarin Studio将创建ViewController类和XIB文件,并将其中一个与另一个相关联,因此您无需执行任何其他操作来链接它们。
对于TextField,您需要添加如前所示的名称。
尝试此操作:删除UITextField的名称并保存并清理/重建项目,然后添加名称并按Enter键。
你可以做些什么来验证是否有任何问题,双击XIB中的按钮,这会带你到ViewController类创建一个方法。
希望这有帮助。