我有一个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
发布您的代码。 –
这是一个简单的代码,我刚刚创建..你需要创建控制器的实例和推,它会显示第二次你推控制器时,你点击按钮,它会触发,但不会执行处理器 –