【问题标题】:How to make new instance of the same UIViewController from within the same?如何在同一个 UIViewController 中创建同一个 UIViewController 的新实例?
【发布时间】:2013-12-26 11:53:17
【问题描述】:

我在 iOS 应用程序中有聊天功能,使用 XMPP 框架。但我坚持实现同时聊天。例如,如果用户正在与好友聊天,并且有来自另一个好友的新消息,我可以打开另一个实例相同的聊天视图控制器来显示该消息?

这是我的聊天视图控制器

-(void)recvdMsg:(NSDictionary *)msg
{
   NSLog(@"received message : - %@" , msg);     // contains message & sender.
   NSMutableDictionary *newMsg=[[NSMutableDictionary alloc]init];
   NSString *m = [msg objectForKey:@"msg"];
   [newMsg setObject:m forKey:@"message"];
    // few more lines and finally;
   [bbltblView reloadData];   // reload table view.

现在,如果来自另一个发件人的消息进来,我想将用户导航到一个新的 ChatVC,他也可以回到当前聊天。所以如果......

  if (self.title != sender)
  {
        // navigating to another instance.
  }

【问题讨论】:

  • 如果您想像什么应用程序或其他聊天应用程序一样流动。然后一旦出现新消息并且用户单击通知中的消息然后将它们移动到 ChatView,或者如果您在聊天视图中并且新消息来了,并使用点击新消息通知然后在聊天窗口中加载发件人消息。不要创建您的聊天视图的任何其他实例。
  • 您可以将 segue 推送到另一个视图控制器。完成新消息后,您可以放松回到之前的视图控制器。但我认为这不是一个好方法。为什么不在同一个视图控制器中实现某种“选项卡”机制,以便在更改选项卡时更新视图?

标签: ios objective-c uiviewcontroller uinavigationcontroller


【解决方案1】:

也许你可以通过调用viewDidLoad 来刷新/重新加载你的聊天视图控制器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多