2016-01-13 62 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調用,但它必須從主線程調用 –