Когда я открываю пользовательский UIView из UITableViewController, как мне закрыть пользовательское представление и вернуться к табличному представлению? - PullRequest
2 голосов
/ 23 июня 2009

Я использую UITableViewController для меню в игре. Табличное представление открывает контроллер представления для моего пользовательского UIView, который показывает игру. Когда игра заканчивается, UIView получает уведомление (что как бы разрушает принципы MVC), и оттуда я как бы теряюсь.

Вопросы:

  1. Может ли UIView связаться со своим контроллером? Как?
  2. Может ли один контроллер разговаривать с тем, кто его запустил? Как?
  3. Как изящно перейти между всеми этими сложными сетями представлений и контроллерами?

1 Ответ

2 голосов
/ 23 июня 2009
  1. Используйте протокол делегата здесь. Ваша пользовательская игра UIView может использовать свойство delegate и вызывать методы этого делегата, когда происходят события (игра окончена, игра приостановлена, просмотр закрыт и т. Д.). Вот отличный пост об использовании делегатов: Как мне создать делегатов в Objective-C?

  2. Я бы порекомендовал использовать UINavigationController. Вам не обязательно показывать панель навигации, но если вы вкладываете свои контроллеры представления в контроллер навигации, у вас есть доступ к -pushViewControllerAnimated: и -popViewControllerAnimated:, которые упрощают навигацию между уровнями вложенных контроллеров представления.

  3. Еще одно преимущество UINavigationController - вы получите приятную анимацию слайдов при переключении между представлениями.

Существуют и другие сторонние механизмы, которые вы можете предпочесть механизмам UIKit UINavigationController / UIViewController. Ознакомьтесь с проектом Three20 , в частности с классом TTNavigationCenter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...