5

que tienen una clase UIViewController (dicen que es XXX). Presento este punto de vista modal controlador como por el código ..Cómo agregar UINavigationBar en un UIViewController?

XXX *xxx = [ [XXX alloc] init]; 
[self presentModalViewController:xxx animated:YES]; 
[xxx release]; 

Quiero añadir una barra de navegación en la parte superior de la vista XXX. Así que utilicé UINavigationBar objeto en el método de loadView XXX.

UINavigationBar *navBar = [ [UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
[self.view addSubview:navBar]; 
[navBar release]; 

Pero, arroja un error como "EXC_BAD_ACCESS". Alguna ayuda...?

Gracias

+0

intenta agregar navigationbar a la vista XXX en XI ter –

+0

No estoy usando IB aquí – Confused

+0

Si u utilizar la navegación que u tiene que empujarlo ... es decir. 'PushViewController' tiene que ser utilizado en lugar presentModalViewController .. – Krunal

Respuesta

17

OPCIÓN-1:

Trate de añadir la barra de navegación de la XI ter del viewController llamados XXX.

OPCIÓN-2:

Añadir un UINavigationController y la presentan de forma modal.

reemplazar su código:

XXX *xxx = [[XXX alloc] init]; 
[self presentModalViewController:xxx animated:YES]; 
[xxx release]; 

con este código:

XXX *xxx = [[XXX alloc] init]; 
UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:xxx]; 
[self presentModalViewController:navigation animated:YES]; 
[navigation release]; 

la esperanza que esto le ayuda.

+0

Gracias .. Por lo tanto, no podemos añadir UINavigationBar sin crear UINavigationController aquí. ¿Estoy en lo cierto? – Confused

+0

@Rajkanth: Sí, probablemente, que debería ser el caso por lo que yo sé. Como obtiene un "EXC_BAD_EXCESS" cuando intenta agregarlo mediante programación. –

0

que hacerlo de esta manera:

XXX *xxx = [[XXX alloc] init]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:xxx]; 
[self presentModalViewController:navigationController animated:YES]; 
[xxx release]; 
[navigationController release]; 
2

reemplazar su código con:

XXX *xxx = [[ [XXX alloc] init]autorelease]; 
    [self presentModalViewController:xxx animated:YES]; 

    UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:xxx]; 
    [self presentModalViewController:navigation animated:YES]; 
    [navigation release]; 

Creo que va a resolver su "EXC_BAD_ACCESS" problema.

1

se puede hacer esto mediante la adición de barra de herramientas en la parte superior de la vista. En muchos casos he visto para abrir el controlador MODAL esta es una buena solución. pero si desea navegar más controladores desde el controlador MODAL, entonces debe usar UINavigationController.

enter image description here

Cuestiones relacionadas