2013-03-10 5 views
1

У меня есть 30+ viewcontroller в моем проекте, и в 28 из них есть поведение.viewcontroller inheritance

Когда нажата кнопка, если 10 секунд не передано в этом диспетчере просмотра, мне нужно предоставить предупреждение, сдвинутое сверху. (Я уже реализовал это поведение для одного из них)

Но мой вопрос в том, как я могу наследовать это поведение надлежащим образом для всех этих контроллеров view?

Включение в эту игру, но не может найти подходящих решений.

ответ

3

Если все контроллеры зрения, которые нуждаются в этой функции являются подклассами UIViewController, то есть не UITableViewController или другого подкласса UIViewController , вы можете создать подкласс UIViewController, скажем ButtonClickAlertViewController (или, что имеет смысл), который реализует функциональные возможности, необходимые для реплицировать. Затем у вас есть все классы, которым нужна эта функциональность, подкласс класса ButtonClickAlertViewController вместо UIViewController.

Возможно, вам нужно будет учитывать, как эта конкретная функциональность интегрируется в каждый из ваших отдельных классов контроллера. Например, вам может понадобиться метод в вашем классе ButtonClickAlertViewController, который сигнализирует, что нажата кнопка, чтобы проверить ваш таймер и, возможно, отобразить предупреждение. В каждом из ваших классов этот подкласс ButtonClickAlertViewController, возможно, вам придется вызвать этот метод в каждом из методов IBAction, который вызывает действие нажатия кнопки.

0

Подкласс UIViewController и добавьте нужное поведение для всех контроллеров представления, а затем подклассифицируйте существующие контроллеры представлений с помощью viewController с желаемым поведением.

Наследование цепи:

UIViewController -> ViewControllerWithBehaviorForAll -> YouExistingViewlContollersWhichNeedTheBehavior