2016-01-13 3 views
3

Я пытаюсь подделать действие нажатия кнопки, запрограммировав ее в моей функции ViewWillAppear().Xamarin iOS UIButton Как нажать кнопку программно?

Функция onclick определена в моем представлении ViewDidLoad(), и вы можете видеть, что я пытаюсь использовать селектор выходов для ручного вызова кнопки.

Эта кнопка не работает. Есть идеи?

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, но его нужно вызывать из основного потока –

Смежные вопросы