insertSubView: no muestra mis vistas
Frecuentes
Visto 811 veces
0
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.
1 Respuestas
1
sí hay flavourPickerView
, shakeView
y 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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas iphone objective-c xcode or haz tu propia pregunta.
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