Я пишу IM-клиент на iphone .// сообщение: # 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 на IPhone, есть два способа начать разговор / чат. Вы можете пообщаться в чате с пользователем Skype, нажав «Пользователь» из «Контакта», или, если с ним есть история чата, вы можете нажать История чата в чатах. если приведенный выше сценарий сопоставлен с моими классами контроллера:
Если коснуться ячейки / строки в ContactsController, то переместите ChatController в вид сверху.
Если коснуться ячейки / строки в ChatsController, то переместите ChatController в вид сверху.
В двух операциях push было бы что-то вроде:
[self.navigationController pushViewController:myChatController animated:YES];
Мой первый вопрос: должен ли myChatController быть одноэлементным классом? В отличие от компьютеров, где вы можете открыть много окон чата, и каждое окно управляет чатом с другим человеком, в IPhone есть только один вид сверху / окно, поэтому может отображаться только одно окно чата?
Мой второй вопрос: было бы неплохо, если бы у ContactsController и ChatsController была переменная экземпляра ChatController, указывающая на один и тот же экземпляр ChatController? Таким образом, при касании ячейки / строки в ContactsController или ChatsController один и тот же экземпляр ChatController перемещается в вид сверху для отображения диалога?
Я объясняю достаточно ясно? Я был бы очень признателен, если бы кто-то мог дать некоторые предложения.