Pregunta

Tengo una aplicación de iPhone basado en una ventana con varias pestañas y un controlador de la barra de navegación que aparece en todas estas fichas. Es una aplicación de tiempo / clima, así que quiero que el usuario elija primero una ciudad, a continuación, se presentará con la información de tiempo en cada pestaña para esa ciudad (que pueden ir de nuevo a la ciudad seleccionar desde cualquier ficha utilizando la barra de navegación. He seguido este guía: http://www.youtube.com/watch?v=LBnPfAtswgw pero agregó más fichas con la misma configuración. Por lo que obtener la ficha actual y crear una instancia del delegado de la aplicación de esta manera:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSUInteger currTab;
AppDelegate_iPhone *delegate = [[UIApplication sharedApplication] delegate];
currTab = delegate.rootTabController.selectedIndex;
...

Esto funciona bien, vuelve correcto pestaña seleccionada cuando se le llama en viewDidAppear. Entonces mi código para empujar a la vista correspondiente (en este caso, UIForecastViewController) de esta manera:

if (currTab == 0) {
    if (self.forecastViewController == nil) {
        UIForecastViewController *chosenCity = [[UIForecastViewController alloc] initWithNibName:@"UIForecastViewController" bundle:nil];
                   // note forecastViewController is a variable, not the class
        self.forecastViewController = chosenCity;
        [chosenCity release];
    }
    forecastViewController.title = [NSString stringWithFormat:@"%@ Forecast",[cityArray objectAtIndex:row]];
    [delegate.navController pushViewController:forecastViewController animated:YES];
}

Todo lo demás funciona como debería, pero la pushViewController no hace nada. He buscado infructuosamente una solución, hay ejemplos similares ligeramente por ahí, pero ninguno utilizando el delegado de la aplicación o me da ningún resultado. Con suerte he mencionado todo lo que debería tener, cualquier ayuda / consejo será muy apreciada! Saludos.

¿Fue útil?

Solución

La propiedad navController de delegate es nula. Me gustaría empezar por mirar el código que se supone que debe ser el establecimiento de esto.

algún motivo no se está usando esto?

[self.navigationController pushViewController:forecastViewController animated:YES];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top