Pregunta

Estoy trabajando en una aplicación que se ha creado en Xcode 3.2.5. Mi aplicación funciona como se esperaba en Xcode 3.2.5, pero debido a algunos problemas de memoria, ahora estoy usando Xcode 4.2.

XCode 4.2 ofrece una herramienta para convertir el código existente en ARC [que significa Contado de referencia automático.] Código habilitado. Seleccione Editar -> Refactor ... -> Convertir a Objective -C ARC…trabajó para mi.

En mi código estoy usando NavigationController para cambiar entre vistas en Uibutton, haga clic. Uibonton creó programáticamente. Estoy usando el siguiente código para presionar el controlador de vista en Button_click:

 -(void) button_click:(id)sender{

NSLog(@"button_clicked.....");
SecondView  *sv = [[SecondView alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:sv animated:NO];
}

En la consola de Button_Click que muestra mensaje Button_clicked….. Pero PushViewController no presiona SecondView.

PushViewController funciona en Xcode 3.2.5 Pero en Xcode 4.2, el clic del botón está funcionando, pero NavigationController PushViewController no funciona.

¿Cómo puedo arreglarlo?

Cualquier ayuda sería muy apreciada.

¡Gracias de antemano!

¿Fue útil?

Solución

¿Intentaste poner el RootViewController en un controlador de navegación en Mainwindow.xib?

Adición a mi respuesta:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    [self.window makeKeyAndVisible];

    // create the MyView controller instance:
    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

    // set the title that appears in the navigation bar:
    [controller.navigationItem setTitle:@"Main View"];

    // create the Navigation Controller instance:
    UINavigationController *newnav = [[UINavigationController alloc] initWithRootViewController:controller];

    // set the navController property:
    [self setNavController:newnav];

    // release both controllers:
    [newnav release];
    [controller release];

    // add the Navigation Controller's view to the window:
    [window addSubview:[navController view]];

    return YES;
}

o

[self.window setRootViewController:navigationController];

[self.window makeKeyAndVisible];

El manejo de la navegación de los controladores se explica en detalle aquí

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