jip*_*pot 4 c# xamarin.ios xamarin
我上课了
public ViewController1 (IntPtr handle) : base (handle){}
Run Code Online (Sandbox Code Playgroud)
在里面ViewController1.designer.cs我注册了一个UITextField
[Outlet]
UIKit.UITextField _textField { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是我在苦苦挣扎的地方:
我有另一个ViewController2继承自的类ViewController1
public class ViewController2 : ViewController1
{
public ViewController2 (IntPtr handle) : base (handle){}
}
Run Code Online (Sandbox Code Playgroud)
为什么在调试时ViewController2我的_textField内容始终为null?
你初个化了_textField吗?喜欢_textField = new UIKit.UITextField();.因为创建类时所有字段都为空.在创建之后ViewController1或者ViewController2,_textField是空的,除非你指定它在构造函数的东西.
更准确地说,每个字段T field都是初始化的default(T),对于参考类型而言null.
顺便说一句:您的"领域"是一个属性.但对于自动属性也是如此.
你可以_textField在构造函数中初始化如下:
public partial class ViewController1
{
public ViewController1 (IntPtr handle)
: base(handle)
{
_textField = new UIKit.UITextField();
}
}
Run Code Online (Sandbox Code Playgroud)
我必须承认我不懂xamarin.你必须InitializeComponent();在构造函数中调用类似的东西吗?是否ViewController1.designer.cs有一个名为像这样的方法?
public ViewController1 (IntPtr handle)
: base(handle)
{
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
例如,在WinForms中,设计器的partial类有一个创建控件的方法.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |