2016-01-13 61 views
3

我试图通过在我的ViewWillAppear()函数内以编程方式调用它来伪造单击按钮的行为。Xamarin iOS UIButton如何以编程方式单击按钮?

onclick函数是在我的ViewDidLoad()中定义的,你可以看到我正在尝试使用Perform Selector来手动调用按钮。

该按钮似乎没有运行。有任何想法吗?

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

    idButtonScanLoad.TouchUpInside += async (sender, ea) => 
    { 
     System.Console.WriteLine("Scan button pressed"); 
    }; 

} 

[Export("TouchUpInsideEvent:")] 
private void TouchUpInsideEvent(NSObject sender) 
{ 
    Console.WriteLine("yay!"); 
} 

public override void ViewWillAppear(bool animated) 
{ 
    base.ViewWillAppear(animated); 

    this.PerformSelector(new ObjCRuntime.Selector("TouchUpInsideEvent:"), this as NSObject, 10f); 
} 

回答

3

这是答案,你应该从你的ViewDidLoad方法调用它。

myButton.SendActionForControlEvents (UIControlEvent.TouchUpInside); 
+0

但是不会将它添加到ViewDidLoad()意味着按钮只会在第一次加载视图时被点击?什么时候有人想回到那个视图再次使用它? –

+0

在ViewWillAppear中使用相同,但首先检查按钮是否为空,如果不是这意味着用户返回到该视图。 –

+0

我试图从其他方法使用它也工作..没必要它必须从ViewDidLoad调用,但它必须从主线程调用 –