2016-09-15 1 views
0

독립 실행 형 iMessage 응용 프로그램을 구축 중입니다. 나는 MSMessagesAppViewController에서 상속 한 UIViewController을가집니다. activeConversation은 항상 nil입니다. 어떤 아이디어? Apple이 샘플 Ice Cream 프로젝트에서 메시지를 보내는 방식을 미러링합니다.MSConversation을 활성화하여 메시지를 보내려면

MSConversation *conversation = [self activeConversation]; 
    if (conversation) { 
     MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init]; 
     layout.caption = @"Caption"; 
     layout.subcaption = @"subcaption"; 

     MSMessage *message = [[MSMessage alloc] init]; 
     message.URL = [NSURL URLWithString:@"www.example.com"]; 
     message.layout = layout; 

     [conversation insertMessage:message completionHandler:^(NSError *error) { 
      if (error) { 
       NSLog(@"Error sending message %@", [error localizedDescription]); 
      } 
     }]; 
    } 
    else { 
     NSLog(@"No &%#%&^# conversation found"); 
    } 

IT는 UIViewControllerUINavigationController에 포함되어 주목할 가치가있을 수 있습니다.

+0

MSConversation * conversation = [MSConversation new]; 그러나 현재의 스레드를 얻기 위해 고생하고있는 새로운 메시지를 보낼 것입니다. –

답변

1

실제로 대화 스레드와 상호 작용할 MSMessagesAppViewController의 인스턴스는 하나만있을 수 있습니다. 다른 컨트롤러는 MSMessagesAppViewController에서 상속받을 수 있지만 대화 프로토콜이나 축소/확장 전환 위임 메서드는 해당 인스턴스에서 발생하지 않으며 확장이 만나는 첫 번째 인스턴스에서만 실행됩니다.