Pregunta

Está bien que acaba de escribir toda esta cuestión y luego se las arregló para eliminarlo. Suspiro. De todos modos, la divulgación estándar que he buscado por todas partes y se golpeó la cabeza en el teclado y no puede resolver esto.

Estoy construyendo una aplicación básica basada en la plantilla de aplicación de utilidad (con un MainViewController y FlipsideViewController). Nota al margen: Todavía no entiendo el propósito de MainView y FlipsideView en este esquema por lo que si alguien puede explicar que no sería demasiado terrible: D

De todos modos, en la parte inferior de ambos puntos de vista quiero tener una barra de herramientas. Era bastante fácil añadir que a una vista determinada con IB, pero quiero que la barra de herramientas para tener su propio controlador y el modelo porque quiero mantener su estado consistente a través de los dos puntos de vista. De acuerdo con ello me gustaría que cargar vista desde una punta, pero parece que estoy haciendo algo mal. Seguí el consejo aquí: NSViewController y múltiples subvistas de una punta, pero obviamente borked hacia arriba de modo más penetración sería apreciada.

Lo hice las siguientes cosas: He creado ToolBarViewController que es básicamente vacío pero es el propietario del archivo de ToolBar.xib. Dentro ToolBar.xib Tengo una visión con un marco del tamaño de la barra de herramientas y en el interior que una barra de herramientas. En MainView.xib Tengo un elemento de la vista del mismo tamaño que está conectado a toolBarView encuentra en el código de abajo ...

En MainViewController.h:

#import "ToolBarViewController.h"

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, MKMapViewDelegate> {
 ...
 ToolBarViewController *toolBarViewController;
 IBOutlet UIView *toolBarView;
}

...
@property(nonatomic, retain) ToolBarViewController *toolBarViewController;
@property(nonatomic, retain) IBOutlet UIView *toolBarView;

En MainViewController.m:

@synthesize toolBarViewController;
@synthesize toolBarView;

- (void)loadView
{
    [super loadView];
    toolBarViewController = [[ToolBarViewController alloc] initWithNibName:@"ToolBar" bundle:nil];
    [[toolBarViewController view] setFrame:[toolBarView frame]];
    [[self view] replaceSubview:toolBarView with:[toolBarViewController view]];
}

Cuando generar y ejecutar consigo la advertencia para la última línea por encima de ese 'UIView' puede no responder a 'replaceSubview: con' y en el funcionamiento que la excepción siguiente: *** - [replaceSubview MainView: con:]: Selector no reconocido enviado a la instancia 0x450c540

Puede alguien explicar lo que estoy haciendo mal? Gracias a

¿Fue útil?

Solución

No hay un método tal como [UIView replaceSubview: con:]. Eso es un método NSView. Usted debería haber recibido una advertencia acerca de esto cuando se ha compilado.

Para hacer la misma cosa, que había necesidad de utilizar [[self view] insertSubview:aboveSubview:] y luego [toolbarView removeFromSuperview].

Dicho esto, no estoy seguro si esto es lo que desea meterse con la barra de herramientas. Probablemente me probar algo más como:

self.toolbarItems = [toolbarViewController toolbarItems];

Otros consejos

Eso es porque no hay tal replaceSubview UIView: con: (hay un método así para NSView en el Mac, sin embargo)

.

Recuerde que las advertencias de Objective-C suelen ser errores;), en general, tiendo a no dejarlos sin tratamiento, e incluso que los convierten en errores: http://akosma.com/2009/07/16/objective -c-compilador advertencias /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top