我有一個uivewcontroller,它具有視圖加載的事件處理程序.it包含在後臺觸發並在UI中觸發的代碼,因此對於使用InvokeOnMainThread的UI代碼。它工作正常,直到我導航到另一個控制器並返回到它。當事件觸發時,它不執行UI代碼。每次我推到這個控制器,我都會創建一個新的實例。所以我試圖讓它只有這個控制器的一個實例,它工作正常!任何人都可以向我解釋爲什麼會發生這種情況?事件處理程序觸發但不執行UI代碼(MonoTouch)
public override void ViewDidLoad()
{
base.ViewDidLoad();
if (hubConnection == null) {
hubConnection = new HubConnection ("http://" + JsonRequest.IP + ":8070/", "userId=" + userId);
hubProxy = hubConnection.CreateHubProxy ("myChatHub");
hubConnection.EnsureReconnecting();
//}
if (hubConnection.State == ConnectionState.Disconnected) {
hubConnection.Start();
}
hubConnection.Received += HandleReceived;
}
}
void HandleReceived (string obj)
{
InvokeOnMainThread (delegate {
discussion.Root [0].Add (new ChatBubble (true, text));
});
}
看看你的代碼會有所幫助,很多。 – James
發佈您的代碼。 –
這是一個簡單的代碼,我剛剛創建..你需要創建控制器的實例和推,它會顯示第二次你推控制器時,你點擊按鈕,它會觸發,但不會執行處理器 –