Controlador de navegación de la interfaz de usuario que muestra un valor nulo para cambiar a la vista detallada

Tengo una aplicación basada en pestañas. En la primera pestaña tengo varias vistas, una de las cuales es un controlador de navegación. Mi objetivo es cargar esta vista de lista (funcionando) y luego ir a una vista detallada en el clic de la celda (no funciona).

En la celda, haga clic en Estoy iniciando sesión

NSLog(@"%@",self.controlador de navegación);

que está devolviendo un valor nulo. Solo puedo asumir que no he hecho algo bien con la configuración del controlador de navegación, pero no sé qué.

al hacer clic en el botón, la vista de tabla se llama:

#import "Reviews.h"
#import "XMLParser.h"
#import "Detailed_Review.h"

@implementation Reviews

@synthesize reviewsTableView;

XMLParser *xmlParser;
CGRect dateFrame;
UILabel *dateLabel;
CGRect contentFrame;
UILabel *contentLabel;

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
    return [[xmlParser reviews] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";
Review_Object *currentReview = [[xmlParser reviews] objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

        CGRect contentFrame = CGRectMake(10, 2, 265, 30);
        UILabel *contentLabel = [[UILabel alloc] initWithFrame:contentFrame];
        contentLabel.tag = 0011;
        contentLabel.numberOfLines = 2;
        contentLabel.font = [UIFont boldSystemFontOfSize:12];
        [cell.contentView addSubview:contentLabel];

        CGRect reviewFrame = CGRectMake(10, 40, 265, 10);
        UILabel *reviewLabel = [[UILabel alloc] initWithFrame:reviewFrame];
        reviewLabel.tag = 0012;
        reviewLabel.font = [UIFont systemFontOfSize:10];
        [cell.contentView addSubview:reviewLabel];
    }

UILabel *contentLabel = (UILabel *)[cell.contentView viewWithTag:0011];
    contentLabel.text = [currentReview rating];

UILabel *dateLabel = (UILabel *)[cell.contentView viewWithTag:0012];
    dateLabel.text = [currentReview review];

    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 55;
}

#pragma mark -
#pragma mark Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
     Detailed_Review *dvController = [[Detailed_Review alloc] initWithNibName:@"Detailed_Review" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:dvController animated:YES];
    NSLog(@"%@",self.navigationController);
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];

    xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://www.mywebsite.com/api/reviews/xml.php?page=1"];

    self.title = @"Reviews";
}

- (void)viewDidUnload
{
    [self setReviewsTableView:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end

Fotos de XIB:

primer tab.xim

devtailview.xib

Archivo .h:

#import <UIKit/UIKit.h>
#import "XMLParser.h"
#import "Review_Object.h"

@interface Reviews : UIViewController

@property (retain, nonatomic) IBOutlet UITableView *reviewsTableView;

@end

preguntado el 11 de junio de 12 a las 19:06

Omitiste la parte donde se asigna e inicializa el controlador de navegación. ¿Puede agregar eso, incluida la parte relevante del archivo .h también? -

Bueno, agregué el archivo .h. En cuanto a la asignación y la inicialización, creo que eso es lo que me falta. ¿Cómo hace uno lo hace tal cosa? ¿Es lo mismo que una IBAction o IBOutlet? -

O créelo con IB o programáticamente, vea desarrollador.apple.com/library/ios/#documentation/WindowsViews/… -

OK, lea los documentos sin suerte. Cualquiera tiene un ejemplo que no está en el xib principal y no lo declara en el delegado de la aplicación. Entonces, ¿una aplicación basada en pestañas que tiene un botón en la primera pestaña que carga una lista que carga una vista detallada? Sigo el DOC y solo obtuve una SIG cada vez que conecto el MyNavController al NavController en el inspector de conexión. Cuando el botón llama a la lista. -

ok lo tengo [self presentViewController:myNavanimado:YES finalización:nil]; Estaba tratando de cargar el controlador de vista y no el navController duh -

1 Respuestas

Omitiste la parte donde se asigna e inicializa el controlador de navegación. ¿Puede agregar eso, incluida la parte relevante del archivo .h también?

O créelo con IB o programáticamente, vea https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerPGforiOSLegacy/NavigationControllers/NavigationControllers.html#//apple_ref/doc/uid/TP40011381-CH103-SW27

Respondido el 28 de junio de 12 a las 09:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.