2014-02-08 2 views
1

내 응용 프로그램에 소켓 모듈을 사용하고 있습니다. 처음에는 새로운 소켓 연결을 만들기 위해 모든 UI를 사용했습니다. 즉, 사용자가 VC를 다른 것으로 변경하면 새로운 소켓 연결이 발생합니다.콜백 후 Appdelegate, 현재 모든 데이터가 사라졌습니다. ViewController

그래서 저는 소켓 위임자를 Appdelegate로 옮기기로 결정했습니다. 거기서 문제가 시작됩니다. 포트를 수신하는 대리자가 있고 수입 이벤트가있는 경우 JSon을 NSArray로 역 직렬화하고 현재보기 컨트롤러로 다시 보냅니다.

그주기가 끝나면 전체 ViewController 데이터가 사라졌습니다. 이전 뷰 컨트롤러의 데이터를 전달했습니다. 여기

내 코드입니다 : 현재의 ViewController에서 Appdelegate.m

- (void) socketIO:(SocketIO *)socket didReceiveEvent:(SocketIOPacket *)packet 
{ 

    NSArray *args = [packet.dataAsJSON objectForKey:@"args"]; 

    Mesajlar *MSG = [[Mesajlar alloc] init]; 

    [MSG didReceiveEventFromSocket:args]; 
} 

에서

(업데이트) : (Mesajlar.m)

-(void) didReceiveEventFromSocket:(NSArray *)args 
{  
    //NSLog(@"Instance called by Appdelegate"); 

    NSString *dataMode = [[args valueForKey:@"dataMode"] objectAtIndex:0]; 

    NSArray *messageContent = [[args valueForKey:@"messageContent"] objectAtIndex:0]; 

} 

Mesajlar.m의 호출 후 didReceiveEventFromSocket, 전체 데이터 및 속성이 방금 제거 되었기 때문에 소켓이 이벤트를 수신하면 Appeslegate의 인스턴스가 Mesajlar.m을 알지 않고 나오고 pu Mesajlar.m의 인스턴스. Mesajlar.m> - 이벤트 호출 Appdelegate -> Mesajlar.M로 이동

현재 ViewController의 속성을 잃지 않고 Appelegate에서 다른 UI에 이벤트를 보내고 어떻게 연결을 유지할 수 있습니까?

좋습니다. Onder

+0

ViewController 데이터의 의미는 무엇입니까? –

+0

은 앱 위임에 코드를 표시합니다. – rdelmar

+0

코드를 추가했습니다. @rdelmar –

답변

0

알림을 사용할 수 있습니다.

[[NSNotificationCenter defaultCenter] postNotificationName:@"data recieved" object:nil userInfo:@{@"data": dataObject}]

을하고 데이터를 다시로드하거나 데이터를 수신 할 때 SEGUE을 수행 할 모든 VC,이 통지 관찰자를 추가하여 AppDelegate에 수신 데이터를 분석 한 후,이를 사용합니다.

+0

현재 ViewControlleR에서 사용해야합니까? 내 질문을 업데이트했습니다. 코드를 볼 수 있습니까? –