私はiphoneでIMクライアントを書いています。//投稿参照:#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.
Skype on IPhoneと同様に、会話/チャットを開始する方法は2つあります。Skypeユーザーとチャットするには、[連絡先]から[ユーザー]をタップするか、ユーザーにチャット履歴が関連付けられている場合は[チャット履歴]をタップします。チャットで。上記のシナリオが私のコントローラークラスにマップされている場合:ContactsControllerでセル/行をタップする場合は、ChatControllerをトップビューにプッシュします。ChatsControllerでセル/行をタップする場合は、ChatControllerをトップビューにプッシュします。
2つのプッシュ操作では、次のようになります。
[self.navigationController pushViewController:myChatController animated:YES];
私の最初の質問は、myChatControllerをシングルトンクラスにする必要があるかどうかです。多くのチャットウィンドウを開くことができ、各ウィンドウが別の人とのチャットを管理するコンピューターとは異なり、iPhoneでは上面図/ウィンドウが1つしかないため、表示できるチャットウィンドウは1つだけですか?
私の2番目の質問:ContactsControllerとChatsControllerがそれぞれ同じChatControllerインスタンスを指すChatControllerインスタンス変数を持っている場合、これは良い考えですか?では、ContactsControllerまたはChatsControllerのセル/行をタップすると、同じChatControllerインスタンスがトップビューにプッシュされて会話が表示されますか?
私は自分自身を十分に明確に説明していますか?誰かが何か提案をしてくれたら本当にありがたいです。