0
我想使用MonoTouch和DialogViewController为iOS实现设置对话框。如何从输入字段获取字符串值?
下面的类包含一些公共属性,以及为其获取DialogViewController的方法。
问题是当视图消失时,thisName.Value
中的字符串值为空(我当然在文本字段中填充了某些内容)。
为什么?
public class Settings
{
public string Name { get; set; }
public int MagicNumber { get; set; }
public bool ThisIsEnabled{ get; set; }
public Settings()
{
var defaults = NSUserDefaults.StandardUserDefaults;
Name = defaults.StringForKey ("name");
ThisIsEnabled = defaults.BoolForKey("thisisenabled");
MagicNumber = defaults.IntForKey ("123");
}
public UIViewController GetViewController()
{
var thisBoolean = new BooleanElement ("This boolean", ThisIsEnabled);
var thisName = new EntryElement ("Name", "name", Name);
thisName.KeyboardType = UIKeyboardType.ASCIICapable;
var root = new RootElement ("Options"){
new Section(){thisBoolean,thisName}
};
var dv = new DialogViewController (root, true){Autorotate= true};
dv.ViewDissapearing += delegate {
ThisIsEnabled = thisBoolean.Value; // <== This works
Name = thisName.Value; // <== This is NULL
var defaults = NSUserDefaults.StandardUserDefaults;
defaults.SetBool (ThisIsEnabled, "thisisenabled");
defaults.SetString (Name, "name");
};
return dv;
}
}
}
有没有什么好的解决方法?我可能住在一个保存按钮。 – 2012-04-06 17:30:17
尝试在获取它的值之前调用元素上的FetchValue()。 – Jason 2012-04-06 18:33:26