MonoTouch UIAlertView не отображается - PullRequest
2 голосов
/ 03 декабря 2010

У меня есть приложение в MonoTouch для iPad (iOS 4.2).У меня есть главное окно, отображающее кнопку и панель навигации.Когда я нажимаю эту кнопку, я хочу показать другой элемент управления, загружающий некоторые данные из Интернета.Я создаю экземпляр UIAlertView и вызываю метод Show.Затем я вызываю загрузку данных для нового элемента управления и после этого представляю новый элемент управления.Моя проблема в том, что после вызова alert.Show () ничего не отображается, только фоновые изменения, как и ожидалосьСамо предупреждение отображается ПОСЛЕ того, как я представляю новый элемент управления.Мой код:

    public void EnterCloudControl(TagCloudItem item)
    {
     using(UIAlertView loadingDialog = new UIAlertView("title", "message", null, "ok", null))
     {
  loadingDialog.Show();
  MyContentCloudController cc = new MyContentCloudController(ContentFrame, this);
  NavigationController.PushViewController(cc, true);
  cc.LoadData(item, DateTime.Now.AddDays(-30), null, string.Format("&Filter={0}{2};Equal;{1}", item.Field, item.Tag, 
  item.Field == "http://schemas.cid.biz/ps/nlp/entities" ? ",Label" : string.Empty), null);
  cc.SetupNavigationBar();
  loadingDialog.DismissWithClickedButtonIndex(0, true);
 }
}

Ответы [ 2 ]

5 голосов
/ 03 декабря 2010

Вы не представляете UIAlertView в потоке GUI, возможно, именно поэтому вы получаете странное поведение, попробуйте:

InvokeOnMainThread(delegate{
    loadingDialog.Show();
});
0 голосов
/ 03 декабря 2010

Плохо что-нибудь плохое с форматированием кода.

public void EnterCloudControl(TagCloudItem item)
    {
        using(UIAlertView loadingDialog = new UIAlertView("title", "message", null, "ok", null))
        {
            loadingDialog.Show();
            MyContentCloudController cc = new MyContentCloudController(ContentFrame, this);
            NavigationController.PushViewController(cc, true);
            cc.LoadData(item, DateTime.Now.AddDays(-30), null, string.Format("&Filter={0}{2};Equal;{1}", item.Field, item.Tag, 
            item.Field == "http://schemas.cid.biz/ps/nlp/entities" ? ",Label" : string.Empty), null);
            cc.SetupNavigationBar();
            loadingDialog.DismissWithClickedButtonIndex(0, true);
        }
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...