Xamarin 访问 iOS 绑定 QualtricsSurveyViewController
Xamarin access to iOS binding QualtricsSurveyViewController
我已经为 iOS 创建了一个绑定库,使用 sharpie bind 生成了 APIDefintions 和 StructsAndEnums class,添加了对绑定库的本地引用,相应地设置了框架属性,并添加了一个绑定库对 iOS 项目的本地引用。
在 AppDelegate class 中,我正在尝试初始化 ViewController,但应用程序崩溃并显示消息:
致命错误:使用未实现的初始化程序 'init(nibName:bundle:)' 用于 class 'Qualtrics.QualtricsSurveyViewController'
这是我的 VC 代码:
public partial class QualtricsViewController : QualtricsSurveyViewController
{
public QualtricsViewController(NSString nibNameOrNil, NSNumber bundle) : base(nibNameOrNil, bundle)
{
this.Init();
}
public QualtricsViewController(NSCoder coder) : base(coder)
{
base.Init();
}
public QualtricsViewController()
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var btn = UIButton.FromType(UIButtonType.System);
btn.Frame = new CGRect(20, 200, 280, 44);
btn.SetTitle("Click Me", UIControlState.Normal);
var user = new UIViewController();
btn.TouchUpInside += (sender, e) => {
this.NavigationController.PushViewController(user, true);
};
}
}
在 AppDelegate 中 class 我这样称呼它:
var qualtricsVC = new QualtricsViewController();
我对设置本机绑定比较陌生。我的 Native Binding proj 编译正确并且一切 似乎 都很好,直到我调用 QualtricsSurveyViewController。任何帮助,将不胜感激。提前致谢!
该错误表明您使用 viewcontroller 进行的初始化不正确。
注意:如果您为 viewcontroller 创建 class 构造函数 public QualtricsViewController(nibNameOrNil, bundle)
,则意味着 viewcontroller 必须来自故事板,我们无法对其进行初始化以编程方式。
要解决这个问题,删除构造函数应该可以。
public partial class QualtricsViewController : QualtricsSurveyViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
var btn = UIButton.FromType(UIButtonType.System);
btn.Frame = new CGRect(20, 200, 280, 44);
btn.SetTitle("Click Me", UIControlState.Normal);
var user = new UIViewController();
btn.TouchUpInside += (sender, e) => {
this.NavigationController.PushViewController(user, true);
};
}
}
我已经为 iOS 创建了一个绑定库,使用 sharpie bind 生成了 APIDefintions 和 StructsAndEnums class,添加了对绑定库的本地引用,相应地设置了框架属性,并添加了一个绑定库对 iOS 项目的本地引用。
在 AppDelegate class 中,我正在尝试初始化 ViewController,但应用程序崩溃并显示消息:
致命错误:使用未实现的初始化程序 'init(nibName:bundle:)' 用于 class 'Qualtrics.QualtricsSurveyViewController'
这是我的 VC 代码:
public partial class QualtricsViewController : QualtricsSurveyViewController
{
public QualtricsViewController(NSString nibNameOrNil, NSNumber bundle) : base(nibNameOrNil, bundle)
{
this.Init();
}
public QualtricsViewController(NSCoder coder) : base(coder)
{
base.Init();
}
public QualtricsViewController()
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var btn = UIButton.FromType(UIButtonType.System);
btn.Frame = new CGRect(20, 200, 280, 44);
btn.SetTitle("Click Me", UIControlState.Normal);
var user = new UIViewController();
btn.TouchUpInside += (sender, e) => {
this.NavigationController.PushViewController(user, true);
};
}
}
在 AppDelegate 中 class 我这样称呼它:
var qualtricsVC = new QualtricsViewController();
我对设置本机绑定比较陌生。我的 Native Binding proj 编译正确并且一切 似乎 都很好,直到我调用 QualtricsSurveyViewController。任何帮助,将不胜感激。提前致谢!
该错误表明您使用 viewcontroller 进行的初始化不正确。
注意:如果您为 viewcontroller 创建 class 构造函数 public QualtricsViewController(nibNameOrNil, bundle)
,则意味着 viewcontroller 必须来自故事板,我们无法对其进行初始化以编程方式。
要解决这个问题,删除构造函数应该可以。
public partial class QualtricsViewController : QualtricsSurveyViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
var btn = UIButton.FromType(UIButtonType.System);
btn.Frame = new CGRect(20, 200, 280, 44);
btn.SetTitle("Click Me", UIControlState.Normal);
var user = new UIViewController();
btn.TouchUpInside += (sender, e) => {
this.NavigationController.PushViewController(user, true);
};
}
}