2011-02-28 3 views
0

besoin de passer un bouton id d'un .m à un autre et effacer ma vue de la table en même temps afin que je puisse charger de nouvelles données po Rien ne semble se passer, le La table contient toujours ce qui a été rempli avec viewDidLoad et l'image d'arrière-plan ne change pas. S'il vous plaît aider.passant bouton id d'un .m à un autre .m

Il n'y a pas d'avertissement ou d'erreurs si im pas sûr de ce im faire le mal, mais la valeur de senderIdentifier dans ClassTwo.h est toujours 0

Merci.

dans mon classOne.mi ont l'action du bouton ci-dessous

-(IBAction) btnPushViewtabel:(id)sender{  
ClassTwo *classtwo = [[ClassTwo alloc]init]; 
    classtwo.myTable = nil; 
classtwo.senderIdentifier = [sender tag]; 
[self.view addSubview:viewtableController.view]; 
} 

dans ClassTwo.h

@interface ClassTwo : UIViewController <UITableViewDelegate, UITableViewDataSource> { 
.... 
int senderIdentifier; 
} 
@property (nonatomic, readwrite) int senderIdentifier; 

dans ClassTwo.m

if(senderIdentifier == 0){ 
    // getNewData 
    //set background img1 
} else { 
    // getNewData 
    //set background img2 
} 
+0

[tableView reloadData] ;? – thelaws

+0

C'est ce que j'ai déjà essayé mais je n'étais pas sûr si cela fonctionnait ou non. Comme je suis incapable de charger de nouvelles données en premier lieu en raison de ne pas être en mesure d'identifier quel bouton a été pressé. Pouvez-vous aider avec mon problème avec [l'ID de l'expéditeur] ne pas être passé correctement?> –

+0

** Quelqu'un peut-il m'aider s'il vous plaît? ** –

Répondre

0

si (mySenderIdentifier == 0) {// getNewData // définir l'arrière-plan i MG1} else {// getNewData // définir fond img2}

quelle méthode est ce bloc de code?

Edit:

Cette ligne:

classtwo.mySenderIdentifier = [expéditeur tag];

est appelé après:

viewDidLoad

Dans d'autres mots: lorsque vous vérifiez ce que vous havn't définissez réellement encore.

Il y a plusieurs façons de résoudre cela, mais ma préférence personnelle serait de créer une méthode d'initialisation personnalisée pour classTwo comme ceci:

- (id) initWithSenderIdentifier: (int) identifiant {

if(self=[super init]){ 

    self.senderIdentifier = identifier; 
    self.myTable = nil; 

}  
return self; 

}

Ou elimate la nécessité de stocker l'int (étant donné que n'est utilisé pour définir l'arrière-plan une fois)

- (id) initWithSenderIdentifier: (int) identifiant {

if(self=[super init]){ 

    if(identifier)//set backgroundimg1; 
    else //set backgroundimg2; 
    self.myTable = nil;   
}  
return self; 

}

vous l'utilisez comme ceci:

ClassTwo * classtwo = [[ClassTwo alloc] initWithSenderIdentifier: [étiquette d'expéditeur]];

Si cela est utile, s'il vous plaît marquer, il a répondu

+0

Merci d'avoir regardé cela. Son dans la méthode viewDidLoad –

+0

Modifier avec la solution –

+0

Im toujours avoir le même problème, je peux voir sa définition de la valeur, mais quand il exécute viewDidLoad il revient à 0 à nouveau. –

Questions connexes