Когда я открываю пользовательский UIView из UITableViewController, как мне закрыть настраиваемое представление и вернуться к представлению таблицы?

StackOverflow https://stackoverflow.com/questions/1029703

Вопрос

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

Вопросы:

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

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top