2010-10-05 3 views
1

Я работал над другой частью своего приложения и, наконец, вернулся к работе над TableView, который я уже «закончил». Когда вы нажимаете на строку в TableView, она должна загружать новый вид. Я был уверен, что это работает, но теперь, когда я нажимаю на строку, приложение просто зависает с выделенной строкой.Отладка MonoTouch не работает правильно

Я ждал 10 минут, и ничего не происходит, только что замерзло. Нет ошибки или чего-то еще.

Итак, я попытался положить в некоторых контрольных точек на TableView и когда я запускаю приложение, в разделе Output Application я вижу «Не удалось вставить в ожидании прерывания в XXXXX.cs»

Я понятия не имею, что здесь происходит неправильно или как это исправить. Помощь?

EDIT

Может ли это иметь ничего общего с тем, что новый View запускается из другого потока? Если да, как вы отлаживаете отдельные потоки?

END EDIT

ответ

1

Похоже, что ваш код не выполняется вообще. Во время отладки компилятор знает, что ваш код никогда не будет вызван и покажет вам это сообщение. Попробуйте поместить точку останова в другом методе и посмотреть, работает ли это.

Кроме того, вы можете нажать новый вид из потока, отличного от основного пользовательского интерфейса, что может привести к тому, что он не появится. В общем, всякий раз, когда вы обрабатываете ввод пользователя и обновляете представление, вы должны делать это внутри основного потока. Например, изнутри вашего TableViewController сделайте следующее:

InvokeOnMainThread({()=>{ 
    NavigationController.PushViewController(new UIViewController(), true); 
}); 

Надеюсь, что это поможет.