insertSubView: no muestra mis vistas

Estoy atrapado en un tutorial, tratando de cambiar de vista con una barra de herramientas. Mi código se compila bien y puse algunas alertas para verificar que la barra de herramientas funcionaba, y así es. Pero mis subvistas que estoy insertando simplemente no aparecen en absoluto. ¿Alguien puede ayudar por favor?

Aquí está mi código de controlador principal.

MainViewController.h es

#importar @class FlavourPickerView; @class ShakeView; @class ResultsView; @interface MainViewController: UIViewController {IBOutlet FlavourPickerView * flavourPickerView; IBOutlet ShakeView * shakeView; IBOutlet ResultsView * resultsView; } @property (retener, no atómico) FlavourPickerView * flavourPickerView; @property (retener, no atómico) ShakeView * shakeView; @property (retener, no atómico) ResultsView * resultsView; - (IBAction) loadFlavourPickerView: (id) remitente; - (IBAction) loadShakeView: (id) remitente; - (IBAction) loadResultsView: (id) remitente; - (nulo) clearView; @final


y aquí está MainViewController.m

#importar "MainViewController.h" #importar "FlavourPickerView.h" #importar "ShakeView.h" #importar "ResultsView.h" @implementation MainViewController @synthesize flavourPickerView; @synthesize shakeView; @synthesize resultsView; - (IBAction) loadFlavourPickerView: (id) remitente {UIAlertView * alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle: @ Mensaje "Flavor selected": @ "Parece que funciona" delegate: nil cancelButtonTitle: @ "¡OK!" otherButtonTitles: nil]; [show de alertDialog]; [lanzamiento de alertDialog]; [self clearView]; [self.view insertSubview: flavourPickerView.view atIndex: 10]; } - (IBAction) loadShakeView: (id) remitente {UIAlertView * alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle: @ Mensaje "Shaker seleccionado": @ "Parece que funciona" delegado: nil cancelButtonTitle: @ "¡OK!" otherButtonTitles: nil]; [show de alertDialog]; [lanzamiento de alertDialog]; [self clearView]; [self.view insertSubview: shakeView.view atIndex: 0]; } - (IBAction) loadResultsView: (id) remitente {UIAlertView * alertDialog; alertDialog = [[UIAlertView alloc] initWithTitle: @ "Resultados seleccionados" mensaje: @ "Parece que funciona" delegado: nulo cancelButtonTitle: @ "¡OK!" otherButtonTitles: nil]; [show de alertDialog]; [lanzamiento de alertDialog]; [self clearView]; [self.view insertSubview: resultsView.view atIndex: 0]; } - (void) clearView {if (flavourPickerView.view.superview) {[flavourPickerView.view removeFromSuperview]; } else if (shakeView.view.superview) {[shakeView.view removeFromSuperview]; } else {[resultsView.view removeFromSuperview]; }} // Implemente viewDidLoad para realizar una configuración adicional después de cargar la vista, normalmente desde una plumilla. - (vacío) viewDidLoad {[self loadFlavourPickerView: nil]; [super viewDidLoad]; } - (void) didReceiveMemoryWarning {// Libera la vista si no tiene una supervista. [super didReceiveMemoryWarning]; // Libera los datos, imágenes, etc. almacenados en caché que no estén en uso. } - (void) viewDidUnload {// Libera las subvistas retenidas de la vista principal. // por ejemplo, self.myOutlet = nil; } - (void) dealloc {[lanzamiento de flavourPickerView]; [lanzamiento de shakeView]; [versión de resultsView]; [super desalloc]; } @final

y aquí hay un ejemplo de una de las otras vistas, comenzando con FlavourPickerView.h

#importar @interface FlavourPickerView: UIViewController {} @end

y FlavourPickerView.m

#import "FlavourPickerView.h" @implementation FlavourPickerView - (void) didReceiveMemoryWarning {// Libera la vista si no tiene una supervista. [super didReceiveMemoryWarning]; // Libera los datos, imágenes, etc. almacenados en caché que no estén en uso. } - (vacío) viewDidUnload {[super viewDidUnload]; // Libera las subvistas retenidas de la vista principal. // por ejemplo, self.myOutlet = nil; } - (vacío) dealloc {[super dealloc]; } @final

También hay una punta para flavourPickerView y he agregado subvistas en mi vista principal, con la clase configurada en FlavourPickerView y el nombre de la punta es FlavourPickerView.xib.

preguntado el 05 de septiembre de 10 a las 12:09

1 Respuestas

sí hay flavourPickerView, shakeViewy resultsView correctamente inicializado cuando agrega su vista a esta vista de UIViewController? Otra cosa: evite llamar a UIViewController solo 'XXXView', intente en su lugar 'XXXViewController'

Respondido el 05 de Septiembre de 10 a las 17:09

Ha agregado más código al ejemplo anterior y ha notado su punto válido sobre XXXViewController, tiene sentido. - charlie fortuna

¿Ha intentado agregar el controlador mediante programación en lugar de utilizar Interface Builder? - rano

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.