¿Cuál es la mejor práctica para reutilizar fácilmente un montón de código en controlleres de múltiples vistas?

Soy bastante nuevo en la progtwigción y me pregunto sobre una cierta (mejor) práctica:

Supongamos que tenemos una aplicación con varios controlleres de vista. En nuestro caso, la mayoría de ellos necesitan la funcionalidad de alertar al usuario sobre ciertas circunstancias, hacer uso de un indicador de actividad o depender de otras funciones generales similares. Hasta ahora he aprendido cómo implementar tales methods, pero luego simplemente copié todo el set de código a cada controller de vista cuando sea necesario. Al hacerlo, cada controller de vista se llena con un montón de código adicional. Sé que es posible hacer que el código sea "global" al moverlo a la parte superior de un controller de vista, fuera de los corchetes de class. Pero como necesitamos asegurarnos de que se agreguen ciertas subvistas a los controlleres de vista correctos al llamar a esos methods, aún no estoy seguro de cuál sería la mejor forma de hacerlo (en general).

¿Existe una práctica comúnmente utilizada que difiera de mi enfoque al definir tales comportamientos de alerta (definir variable / constante y sus methods necesarios), que se usan en los controlleres de múltiples vistas?

Objective-C proporciona dos forms generales de reutilizar el código:

  1. Henetworkingando una class base y
  2. Usando una function compartida.

El primer caso es sencillo: si necesita una funcionalidad específica en varios controlleres de vista, cree un controller de vista base con los methods compartidos y luego obtenga los otros controlleres de vista:

@interface BaseViewController : UIViewController -(void)shanetworkingMethodOne; -(void)shanetworkingMethodTwo; @end @interface FirstViewController : BaseViewController ... @end @interface SecondViewController : BaseViewController ... @end @interface ThirdViewController : BaseViewController ... @end 

El segundo caso puede implementarse como una class auxiliar con methods de class (es decir, con + lugar de - ) o con funciones independientes de C.

Debería mirar para ver qué se podía mover del nivel del controller al nivel de la vista. Parece que estás reutilizando un montón de vistas, así que crearía subclasss de UIView s que pueden implementarse. Luego, en el controller de vista, puede manejar cuándo deben aparecer las vistas y los datos asociados con ellas, pero no necesita volver a escribir cómo implementar las vistas.