第二个视图对象的名称分配崩溃

时间:2017-03-29 09:11:53

标签: xamarin xamarin.ios xib

我是Xamarin和MVVMCross的新手。所以我创建了2个视图。登录和注册。我在登录时有一个按钮转到注册视图,我将在Login的ViewModel中使用此代码:

... ORDER By Featured_Flag DESC, WEIGHT() DESC

确实可以使注册页打开。但是,一旦我在Register视图(textEdit)上为单个对象分配Name,当我点击Register按钮时应用程序崩溃。

以下是错误消息:

  

Xamarin.iOS:收到未处理的ObjectiveC异常:   NSUnknownKeyException [   setValue:forUndefinedKey:]:此类不是键值   符合编码的密钥regNameEdit。

修改 更多细节:我已经分配了名称(见下图),但仍然崩溃: enter image description here

该视图也已分配给其“CreateAccount”类。但我注意到班级声明在“// method when user tap register button public IMvxCommand NavigateRegister { get { return new MvxCommand(() => ShowViewModel<RegisterViewModel>()); } } ”行中已经“部分”变暗。这是这个班级和第一个班级唯一明显的区别。

public partial class CreateAccount : MvxViewController

Bind(regNameEdit)也是一个错误(仍未检测到textedit)

1 个答案:

答案 0 :(得分:1)

这通常意味着在regNameEdit的情况下,View / ViewController类中未定义a控件。

确保为此Edit创建了后面的属性,并且分配给XIB的类是包含此属性的类。

如果您正在使用Xamarin Studio Designer,则可以创建back属性,在XIB / StoryBoard中选择UIControl并设置名称,然后输入。

enter image description here

这将创建一个具有您在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类创建一个方法。

希望这有帮助。