2014-07-01 18 views
6

Sử dụng biểu mẫu Xamarin, cách chế độ xem trình chọn mặc định được thay đổi để hiển thị trong PopoverController? Mã dưới đây ném "Không thể hiển thị cửa sổ bật lên từ chế độ xem không có cửa sổ." trên iOS.Bộ chọn biểu mẫu Xamarin - UIPickerView tùy chỉnh

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); 
     } 
} 

Trả lời

1

this.Control.InputView chế độ xem bạn đang trình bày popOverController? Nếu có, có vẻ như tại thời điểm thực hiện OnElementChanged(), this.Control.InputView của bạn không phải là thành viên của hệ thống phân cấp cửa sổ vì bất kỳ lý do gì.

Thay vào đó, bạn có thể đặt hành động trình bày popOver của mình trong một số MovedToWindow() hoặc ViewDidAppear() bị ghi đè. Tôi không biết loại this.Control.InputView của bạn là gì, nhưng bạn sẽ cần phải ghi đè lên một trong những phương pháp đó trong loại đó.

Các vấn đề liên quan