15

XCodeを使用してモノタッチでUIPickerViewを作成し、サンプルデータを入力する方法を誰かが説明できますか?

https://github.com/xamarin/monotouch-samples/blob/master/MonoCatalog-MonoDevelop/PickerViewController.xib.csで例を確認しましたが、UIPickerViewを作成しているため、これはあまり役に立ちませんでした。 XCode。これが私がこれまでに持っているものです:

public partial class StatusPickerPopoverView : UIViewController
{
    public StatusPickerPopoverView (IntPtr handle) : base (handle)
    {
        pickerStatus = new UIPickerView();
        pickerStatus.Model = new StatusPickerViewModel();
    }

    public StatusPickerPopoverView (): base ()
    {
    }

    public class StatusPickerViewModel : UIPickerViewModel
    {
        public override int GetComponentCount (UIPickerView picker)
        {
            return 1;
        }

        public override int GetRowsInComponent (UIPickerView picker, int component)
        {
            return 5;
        }

        public override string GetTitle (UIPickerView picker, int row, int component)
        {

            return "Component " + row.ToString();
        }
    }
}
4

4 に答える 4

21

だから私は基本的に答えを見つけました、そしてそれはあなたが考えることができるよりも簡単でした!

モデルはViewDidLoadで設定する必要があります。そうしないと、クラッシュします...そのため、モデルは正しく入力されていませんでした。注意:「ViewDidLoad」で設定してください。

public partial class StatusPickerPopoverView : UIViewController
{
    public StatusPickerPopoverView (IntPtr handle) : base (handle)
    {
    }

    public override ViewDidLoad()
    {
        base.ViewDidLoad();

        pickerStatus = new UIPickerView();
        pickerStatus.Model = new StatusPickerViewModel();
    }

    public class StatusPickerViewModel : UIPickerViewModel
    {
        public override int GetComponentCount (UIPickerView picker)
        {
            return 1;
        }

        public override int GetRowsInComponent (UIPickerView picker, int component)
        {
            return 5;
        }

        public override string GetTitle (UIPickerView picker, int row, int component)
        {

            return "Component " + row.ToString();
        }
    }
}
于 2013-03-25T15:21:23.137 に答える
3

Xamarin Studio 5.10:

public partial class ViewController : UIViewController
    {
        UIPickerView samplePicker;

        public ViewController (IntPtr handle) : base (handle)
        {
        }    
        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            samplePicker = new UIPickerView (new CoreGraphics.CGRect (10f, 244f, this.View.Frame.Width - 20, 250f));
            samplePicker.BackgroundColor = UIColor.LightGray;    
            samplePicker.Model = new StatusPickerViewModel ();   

        }    
        public class StatusPickerViewModel : UIPickerViewModel
        {
            public override nint GetRowsInComponent (UIPickerView pickerView, nint component)
            {
                return 5;
            }

            public override string GetTitle (UIPickerView pickerView, nint row, nint component)
            {               
                return "Title";
            }

            public override nint GetComponentCount (UIPickerView pickerView)
            {

                return 1;
            }           
        }    
        public override void ViewDidAppear (bool animated)
        {
            base.ViewDidAppear (animated);

            this.View.AddSubview (samplePicker);
        }    
        }
于 2016-03-17T06:55:59.287 に答える
2

UIPickerViewModelインスタンスでUIPickerViewのModelプロパティを設定したいと思います。

pickerStatus.Model = new StatusPickerViewModel();

IListにUIPickerViewModelを提供する要点は次のとおりです:https ://gist.github.com/jfoshee/5223962

于 2013-03-22T19:16:54.127 に答える
2

現在の回答よりも詳細にブログ投稿を作成しました。

まず、ストーリーボードにUIPickerViewを追加します。UIPickerに名前を追加します。

次に、UIPickerViewModelを実装するクラスが必要です。これは、それを設定するPickersモデルを設定します。Android開発に精通している場合、XamariniOS用のピッカーの設定は奇妙に思えるかもしれません。ピッカーにリストを入力するだけでは不十分です。

最後に、UIPickerViewのモデルを作成したクラスに設定します。

于 2017-06-08T18:43:07.943 に答える