1

Salut, j'ai actuellement un avertissement sur une ligne de code où j'essaie de pousser une nouvelle vue sur l'écran. Outline // mon NSObject reçoit un code = 1 de mon serveur que j'ai configuré. Tout fonctionne correctement le code qui passe ensuite qui initialise un AlertView où j'ai mis en place une instruction if pour attraper le clic sur le bouton de mon message AlertView. Lorsque ce bouton est enfoncé, mon application tombe.'NSObject' peut ne pas répondre à -navigationController

J'ai déclaré mon ViewController de la vue que j'essaie de pousser dans son fichier d'en-tête et il n'y a pas d'erreur seulement l'avertissement lors de la compilation.

c'est mon NSObject j'ai fait

/////.h 
    #import <Foundation/Foundation.h> 


@interface alerts : NSObject { 

} 

- (void)pleaseRegisterDevice; 

@end 


/////.m 
#import "alerts.h" 
#import "instaCode1_3AppDelegate.h" 
#import "RegisterDeviceViewController.h" 


@implementation alerts 

//use this alert when phone falls out of sync 
- (void)pleaseRegisterDevice { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please Register Device" 
                message:@"click OK to register" 
                delegate:self 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 

    [alert autorelease]; 
    [alert show]; 

} 


//Catch pleaseRegisterDevice method 
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
    NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex]; 
    if ([buttonTitle isEqualToString:@"OK"]) { 
     NSLog(@"msg from alertView method"); 

     //open new wndow 

     RegisterDeviceViewController *regViewController = [[RegisterDeviceViewController alloc] init]; 


     //Push it onto the top pf the navigation controller's stack 
     **[[self navigationController] pushViewController:regViewController animated:YES];** 



    } 
    else { 
     NSLog(@"was not able to push view"); 
    } 

} 

- (void)dealloc { 
    [super dealloc]; 
} 
@end 

Je la ligne de caractère gras code où je reçois l'avertissement « alertes » peuvent ne pas répondre à -navigationController

toute aide serait grandement appréciée.

Répondre

2

Je ne pense pas une sous-classe NSObject a une UINavigationController ... Vous devez obtenir un pointeur sur votre contrôleur de navigation délégué app comme si

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
[appDelegate.navigationController pushViewController:regViewController animated:YES]; 
+0

Merci cela a fonctionné. Je savais que le problème était lié à cela, mais à cause de mon manque évident d'expérience, je n'étais pas sûr des détails exacts. Je vous remercie. – tinhead

0

navigationController est une propriété définie sur un UIViewController. Un NSObject n'a pas cette méthode.

+0

:) merci, comme je suis nouveau à l'encapsulation de mon code comme ceci, c'est probablement la deuxième fois que j'ai travaillé avec un NSObject .. et n'était pas tout à fait au courant des règles concernant ce type de chose. Merci pour votre réponse. – tinhead

0

Vous n'avez aucun membre ou méthode d'instance appelé navigationController, d'où l'avertissement.

Questions connexes