从 Nib 加载视图不会初始化插座 - Monotouch
Posted
技术标签:
【中文标题】从 Nib 加载视图不会初始化插座 - Monotouch【英文标题】:Loading View From Nib doesn't initialize the outlets - Monotouch 【发布时间】:2012-09-15 13:41:07 【问题描述】:您好,我目前正在尝试从 NIB 文件动态加载视图 这是代码:
res1 = new View1();
var ptr = NSBundle.MainBundle.LoadNib("View1",res1,null).ValueAt(0);
res1 = Runtime.GetNSObject(ptr) as View1;
res1 里面有一个按钮。 按钮视图已初始化并位于 res1 视图内。
但我在 NULL 按钮上的界面构建器中创建的插座 如何初始化网点?
【问题讨论】:
只需全局声明按钮... 对不起,我没听懂你的意思。你能详细说明一下吗? 在 .h 文件中写入 IBOutlet UIButton *yourBtn;并从文件所有者连接到按钮 我已经有了网点。我已经声明了它们,但在从 NIB 创建视图后它们为 NULL。这就是问题所在。 断开并重新连接 【参考方案1】:尝试使用这种方式:
//parameter 2 should be a controller.
var ptr = NSBundle.MainBundle.LoadNib("View1",this,null).ValueAt(0);
var res1 = new View1(ptr);
因为 ValueAt 方法的返回类型是 IntPtr,并且您的视图有一个构造函数,它可以添加另一个视图。
【讨论】:
为什么第二个参数应该是控制器? 所有的nib文件都必须有一个Owner,我觉得应该是一个UIViewController,可以管理你的view。但是,如果您想在驻留在不同 Nib 文件中的多个表视图中使用相同的单元格,则可以使用 NSObject。此链接中的更多详细信息:software.tavlikos.com/2011/04/03/uitableviewcell-nib以上是关于从 Nib 加载视图不会初始化插座 - Monotouch的主要内容,如果未能解决你的问题,请参考以下文章