2017-08-15 16 views
0

私のXamarin iOSアプリケーションでは、警告ダイアログを表示するスタティックヘルパーメソッドがあります。このダイアログボックスは、ユーザーがまだOKボタンを押していない場合、数秒後に自動的に消える必要があります。タイマーが満了したときUIAlertControllerが却下されない

UIAlertController dlg = UIAlertController.Create(title, text, 
    UIAlertControllerStyle.Alert); 
dlg.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, null); 
UIApplication.SharedApplication.KeyWindow.RootViewController. 
    PresentViewController(dlg, true, null); 

その後、::ここでは単純化されたコードスニペットがある

t.Elapsed += (s, e) => { 
    dlg.DismissViewController(true, null); 
}; 

方法DismissViewControllerが実際に呼び出さなっている、が、ダイアログが画面から消えていません。

私はさらにdlg.Dispose()を呼び出してみましたが、これも役に立たなかったです。

誰かが私に行方不明であることを理解してもらえますか?よろしく。

答えて

3

イベントコード終了のコードはメインスレッドにありません。

メインスレッドで呼び出します。

t.Elapsed += (s, e) => 
{ 
    InvokeOnMainThread(() => { 
     dlg.DismissViewController(true, null); 
    }); 
}; 
+0

パーフェクト。ありがとうございました。 – Peter

関連する問題