1

情報

Xamarin Studio と Xcode を使用しています。

私の 2 つのボタン 'IncreaseButton' と 'DecreaseButton' の両方に、送信されたイベント "TouchUpInside" が IBAction の 'buttonClick' に添付されています。

以下のコードは、partial void buttonClick 関数でのビルド時に 2 つのエラーを生成します。ただし、私の質問は、以下のコードで何を達成する必要があるかを達成しながら、これらの2つのエラーを発生させないようにするにはどうすればよいかということです(それが意味をなす場合)。

ありがとう。

using System; 
using System.Drawing; 
using MonoTouch.Foundation; 
using MonoTouch.UIKit;

namespace Allah
{
public partial class AllahViewController : UIViewController
{
    protected int clickCount;

    public AllahViewController () : base ("AllahViewController", null)
    {
    }

    public override void DidReceiveMemoryWarning ()
    {
        // Releases the view if it doesn't have a superview.
        base.DidReceiveMemoryWarning ();

        // Release any cached data, images, etc that aren't in use.
    }

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

        this.IncreaseButton.TouchUpInside += (sender, e) => {
            this.clickCount++;
        };

        this.DecreaseButton.TouchUpInside += (sender, e) => {
            this.clickCount--;
        }; 

        // Perform any additional setup after loading the view, typically from a nib.
    }

    partial void buttonClick (NSObject sender)
    {
        if (this.IncreaseButton.TouchUpInside == true)
        {
            this.CountLabel.Text = clickCount.ToString();
        }

        if (this.DecreaseButton.TouchUpInside == true)
        {
            this.CountLabel.Text = clickCount.ToString();
        }
    }
}}
4

2 に答える 2

1

複数のビューを互いに区別するために設定できる整数タグ プロパティとしての各ビュー (UIButton を含む)。ボタンのイベント ハンドラーを 1 つだけにしたい場合は、Tag プロパティを利用できます。

IncreaseButton.Tag = 1;
DecreaseButton.Tag = -1;

partial void ButtonClick(NSObject sender)
{
  clickCount = clickCount + ((UIButton)sender).Tag;
  this.CountLabel.Text = clickCount.ToString();
}
于 2013-11-08T14:24:16.360 に答える
1

次のように記述できます。

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

    // Perform any additional setup after loading the view, typically from a nib.
}

partial void decreaseButtonClick (NSObject sender)
{
    clickCount--;
    this.CountLabel.Text = clickCount.ToString();       
}

partial void increaseButtonClick (NSObject sender)
{
    clickCount++;
    this.CountLabel.Text = clickCount.ToString();       
}
于 2013-11-08T02:56:01.410 に答える