Xamarin.ios Xamarin iOS在NSBundle.MainBundle.LoadNib中崩溃(“CustomView”,this,null)

Xamarin.ios Xamarin iOS在NSBundle.MainBundle.LoadNib中崩溃(“CustomView”,this,null),xamarin.ios,Xamarin.ios,我已经创建了新的CustomView.xib文件并关联到代码隐藏类。但当我尝试初始化视图时,应用程序崩溃,如下所述错误 MonoTouch:无法安装sigaction覆盖,意外的sigaction实现。 NSBundle.MainBundle.LoadNib(“CustomView”,this,null);//应用程序在此崩溃 CS类文件: public partial class CustomView : UIView { public CustomView(IntPtr handle

我已经创建了新的CustomView.xib文件并关联到代码隐藏类。但当我尝试初始化视图时,应用程序崩溃,如下所述错误

MonoTouch:无法安装sigaction覆盖,意外的sigaction实现。

NSBundle.MainBundle.LoadNib(“CustomView”,this,null);//应用程序在此崩溃

CS类文件:

public partial class CustomView : UIView
{
    public CustomView(IntPtr handle) : base(handle)
    {

    }

    public override void AwakeFromNib()
    {
        base.AwakeFromNib();
    }
}
设计师类:

[Register("CustomView")]
partial class CustomView
{
    [Outlet]
    UIKit.UIView contentView { get; set; }

    void ReleaseDesignerOutlets ()
    {
        if (contentView != null) {
            contentView.Dispose ();
            contentView = null;
        }
    }
}
注:

  • 生成操作设置为interfaceDefinition
  • 将xib的文件所有者设置为类名“CustomView”
  • 还实现了AwakeFromNib重写方法
  • 提前谢谢

    编辑:

    我们在很长一段时间后遇到了类似的问题,但有不同的例外,在AwakeFromNib方法中的“contentView”上表示“objectnull引用”。当您尝试访问AwakeFromNib方法内的ContentView时,应用程序崩溃。这只发生在iOS 9.3.x上。如果有人面临同样的问题,下面的修复可能会对他们有所帮助

    [Export("initWithFrame:")]
    public SampleHeaderView(CGRect frame) : base(frame)
    {
        Initialize();
    }
    
    [Export("initWithCoder:")]
    public SampleHeaderView(NSCoder coder) : base(coder)
    {
        Initialize();
    }
    
    public override void AwakeFromNib()
    {
        base.AwakeFromNib();
    }
    
    private void Initialize()
    {
        if (this.ContentView != null)
        {
            this.ContentView.BackgroundColor = UIColor.Red();
        }
    }
    

    在何处使用
    CustomView
    。您可以显示完整的
    CustomView.cs
    以及在何处使用它。您可以创建示例并共享它吗?通常我创建静态方法的代码如下:
    Nib=UINib.FromName(“GroupFooter”,NSBundle.MainBundle)
    var view=(GroupFooter)Nib.Instantiate(null,null).First()
    Hi,您解决了这个问题吗?如果有其他问题,我会更新我的答案。它没有解决,似乎是Visual Studio for Mac的问题,只有在现有项目中创建XIB时才会发生。或者,我们创建了一个空项目,实现了与XIB相关的功能,并转移到现有项目。注意:我们无法在现有项目中编辑XIB,它会产生一些其他问题,所以我们使用Xcode完成了所有工作。我认为问题在于VS和Xcode之间的同步。在何处使用
    CustomView
    。您可以显示完整的
    CustomView.cs
    以及在何处使用它。您可以创建示例并共享它吗?通常我创建静态方法的代码如下:
    Nib=UINib.FromName(“GroupFooter”,NSBundle.MainBundle)
    var view=(GroupFooter)Nib.Instantiate(null,null).First()
    Hi,您解决了这个问题吗?如果有其他问题,我会更新我的答案。它没有解决,似乎是Visual Studio for Mac的问题,只有在现有项目中创建XIB时才会发生。或者,我们创建了一个空项目,实现了与XIB相关的功能,并转移到现有项目。注意:我们无法在现有项目中编辑XIB,它会产生一些其他问题,所以我们使用Xcode完成了所有工作。我认为问题在于VS和Xcode之间的同步。