使用Xamarin Forms,如何更改默认选择器视图以在PopoverController中显示?下面的代码抛出“弹出窗口无法从没有窗口的视图中呈现”。在iOS上。
public class BindablePickerRenderer : PickerRenderer {
private UIPickerView picker;
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) {
base.OnElementChanged(e);
this.picker = new UIPickerView() {
Source = (UIPickerViewModel) new PickerSource(e.NewElement)
};
var popoverContent = new UIViewController();
popoverContent.View = picker;
var popoverController = new UIPopoverController(popoverContent);
popoverController.PopoverContentSize = new SizeF(320, 180);
popoverController.PresentFromRect(picker.Frame, this.Control.InputView, UIPopoverArrowDirection.Up, true);
}
}
答案 0 :(得分:1)
this.Control.InputView
是您展示popOverController
的视图吗?如果是这样,似乎在OnElementChanged()
执行时,无论出于何种原因,您的this.Control.InputView
都不是窗口层次结构的成员。
您可能希望将您的popOver呈现操作放在被覆盖的MovedToWindow()
或ViewDidAppear()
中。我不知道您的this.Control.InputView
是什么类型,但您需要覆盖该类型中的其中一种方法。