我正在 iphone 上编写一个 IM 客户端。// post ref: #IMClient01。这是我最初的设计:
(UIView*)LogInWindow; // to log in
(UITabBarController*) MainTabBarController;//have three tabs, namely:Contacts, Chats, My Profile
(UITableViewController*)ContactsController; //manages a list of contact/user
(UITableViewController*)ChatsController; //manages a list of chat history, each row is a chat with a different person
(UIViewController *)ChatController; //manages a chat/conversation with a single user.
与 iPhone 上的 Skype 一样,有两种方法可以开始对话/聊天。您可以通过点击联系人中的用户与 Skype 用户聊天,或者如果有与用户关联的聊天历史,您可以点击聊天历史在聊天中。如果上述场景映射到我的控制器类:如果在 ContactsController 中点击一个单元格/行,则将 ChatController 推到顶视图。如果在 ChatsController 中点击一个单元格/行,则将 ChatController 推到顶视图。
在两个推送操作中,它类似于:
[self.navigationController pushViewController:myChatController animated:YES];
我的第一个问题是 myChatController 应该是一个单例类吗?不像在电脑上可以打开多个聊天窗口,每个窗口管理与不同人的聊天,在 iPhone 中,只有一个顶视图/窗口,所以只能显示一个聊天窗口?
我的第二个问题:如果 ContactsController 和 ChatsController 每个都有一个指向同一个 ChatController 实例的 ChatController 实例变量,这会是一个好主意吗?因此,当点击 ContactsController 或 ChatsController 中的单元格/行时,相同的 ChatController 实例会被推送到顶部视图以显示对话?
我是否足够清楚地解释自己?如果有人可以提出一些建议,我将不胜感激。