Tengo una subclase de UIView y creó una PUNTA que controla la lógica principal de mi aplicación.

La esperanza de que la vista se escala muy bien, quiero usar para el iPhone y el iPad versiones de la aplicación.

En el iPhone la vista de la cubierta de la pantalla completa. En el iPad la vista se cubren sólo una parte de la pantalla.

He leído que no se debe utilizar UIViewControllers para el control de sólo una parte de la pantalla. Por lo tanto, estoy tratando de integrar la costumbre UIView en el principal UIViewController de vista del uso de BI.

Cómo puede hacerse esto?

OriginalEl autor Beav | 2010-11-25

2 Comentarios

  1. 6

    Después de un montón de prueba y error, he encontrado una solución basada en un enfoque explica en el siguiente pregunta, contestó Brian Webster.

    La solución que se propuso originalmente para un Cacao entorno. Espero que sea válida en un iOS medio ambiente.

    1. Crear la vista principal del controlador con una PUNTA de archivo. En la PUNTA, el Propietario del Archivo debe corresponder a la clase de su principal controlador de vista.
    2. Crear una vista personalizada controlador con una PUNTA de archivo. En este PLUMILLA, el Propietario del Archivo debe corresponder a la clase de la vista personalizada controlador.
    3. Crear una vista personalizada de propiedades del controlador en su vista principal de la clase controlador.
    4. Crear una UIView de la propiedad en la vista principal de la clase controlador. Se va a celebrar la vista personalizada del controlador de vista. Lo definen como un IBOutlet, así que puede ser enlazada en la PUNTA.
    5. Caída de un UIView en su vista principal del controlador de PUNTA. Enlace a la vista principal del controlador de vista IBOutlet. Será utilizado como un marcador de posición para la vista personalizada.
    6. En la vista principal del controlador de viewDidLoad método de carga de la vista personalizada controladores de PUNTA, determinar la opinión de encargo del tamaño de los fotogramas y copia de la vista en la vista principal del controlador de vista.

    Aquí está el código:

    • MainViewController.h

      @interface MainViewController : UIViewController {
        CustomViewController *customViewController;
        UIView *customView;
      }
      @property (nonatomic, retain) CustomViewController *customViewController;
      @property (nonatomic, retain) IBOutlet UIView *customView;
      @end

    • MainViewController.m

      - (void)viewDidLoad {
        CustomViewController *controller = [[CustomViewController alloc] initWithNibName:@"CustomViewController" bundle:nil];
        self.customViewController = controller;
        [controller release];
        customViewController.view.frame = customView.frame;
        customViewController.view.autoresizingMask = customView.autoresizingMask;
        [customView removeFromSuperview];
        [self.view addSubview:customViewController.view];
        self.customView = customViewController.view;
        [super viewDidLoad];
      }

    OriginalEl autor Beav

  2. 1
    1. Agregar un IBOutlet propertyfor personalizado UIView a la UIViewController, y salidas adicionales de cualquier subvistas que desea acceder.
    2. Ir a la Interface Builder, seleccione el «Dueño del Archivo de objeto» en la PUNTA y en el Inspector de ir a la derecha de la ficha conjunto de su clase para que coincida con su UIViewController de la clase.
    3. Conecte el IBOutlet desde el paso uno en el «Propietario del Archivo» personalizado UIView.
    4. En XCode, cuando usted necesita para cargar su punto de vista, hacer algo como esto:

       [[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:self options:0];
       self.myCustomView.frame=self.view.bounds; //make view fill screen - customize as necessary
       [self.view addSubview:self.myCustomView];

    Cuando se carga la PUNTA, la salida(s) que usted creó en el paso 1 se rellenará con los objetos que se cargan desde su PUNTA.

    Probado tu sugerencia, pero sin éxito. He adaptado a mi pregunta original para reflejar esto. Más ideas?
    Han sugerido mi propia solución, y ha editado la pregunta original.
    Cómo puedo hacerlo sin el Interface Builder?
    cuando hemos añadido customview en xib, ¿por qué tenemos que añadir el uso de [auto.ver addSubview:auto.myCustomView] ?

    OriginalEl autor grahamparks

Dejar respuesta

Please enter your comment!
Please enter your name here