2016-09-15 82 views
0

我正在构建一个独立的iMessage应用程序。我有一个UIViewController,它继承自MSMessagesAppViewController。看来activeConversation总是零。任何想法为什么?我正在镜像苹果如何在他们的冰淇淋样本中发送消息。获得活动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"); 
    } 

这可能是值得注意UIViewController被嵌入在UINavigationController

+0

MSConversation * conversation = [MSConversation new];会发送一条新消息,但仍然努力获得当前线程。 –

回答

1

原来,您只能有一个MSMessagesAppViewController实例,它将实际与交谈线程交互。其他控制器可以从MSMessagesAppViewController继承,但对话协议或压缩/扩展转换委托方法都不会在这些实例中触发,只是扩展遇到的第一个实例。