2009-03-28 6 views
0

MainViewController.h

@class EventViewController; 
@class MainViewController; 

@interface MainViewController : UIViewController { 
    EventViewController *eventViewController; 
    MainViewController *mainViewController; 
    //extern int i; 
@public 
    NSString *titlegame; 
} 

@property (retain,nonatomic) EventViewController *eventViewController; 
@property (retain,nonatomic) MainViewController *mainViewController; 
@property (retain,nonatomic)IBOutlet NSString *titlegame; 

@end 

MainViewController.m

-(IBAction)buttonClick:(id)sender{ 
    titlegame = [sender titleForState: UIControlStateNormal]; 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"You selecet!!!!" 
                message:titlegame 
                delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 

    [alert show]; 
    //[titlegame release]; 
    [alert release]; 

    //////// 
    if([titlegame isEqualToString: @"FootBall"]==YES) 
     NSLog(@"Equal"); 
    else 
     NSLog(@"NotEqual"); 
    EventViewController *eventController = [[EventViewController alloc] 
              initWithNibName: @"EventView" 
                bundle:nil]; 
    self.eventViewController = eventController; 
    [eventController release]; 

    [[self mainViewController] dismissModalViewControllerAnimated:YES]; 
    [eventViewController.view removeFromSuperview]; 
    [self.view addSubview: eventController.view]; 

    // eventController.labelgame.text = titlegame; 
    eventViewController.labelgame.text =titlegame; 
    NSLog(@"title==>%@",eventController.labelgame.text); 
    NSLog(@"title1==>%@",eventViewController.labelgame.text); 
    [eventViewController.labelgame retain]; 
} 

fonctionne correctementiphone: problème avec les événements

mais dans la méthode viewDidLoad EventViewController je ne peux pas que la valeur de l'étiquette ..

EventViewController.m:

- (void)viewDidLoad { 
    NSLog(@"titlegame==>%@",labelgame.text); 
} 

EventWiseViewController.m:

-(IBAction)BackPressed :(id) sender 
{ 
    EventViewController *eventController = [[EventViewController alloc] 
              initWithNibName: @"EventView" 
                bundle:nil]; 
    self.eventWiseViewController = eventController; 
    [eventController release]; 

    [[self eventWiseViewController] dismissModalViewControllerAnimated:YES]; 
    [eventViewController.view removeFromSuperview]; 
    [self.view addSubview: eventController.view]; 

    NSLog(@"final=---->%@",eventController.game1); 
    eventController.labelgame.text = mainViewController.titlegame; 
    NSLog(@"gmename1 ==>%@", [mainViewController titlegame]); 
    NSLog(@"gamename2 ==>%@", mainViewController.titlegame); 

    //NSLog(@"gmename1 ==>%@",eventController.labelgame.text); 
    //NSLog(@"gmename2 ==>%@",eventController.game1); 
} 

mais ici quand je vais revenir à EventViewController l'étiquette se vide, pourquoi ?? plz me dire ..

+0

Est-ce un doublon de http://stackoverflow.com/questions/692635/? Je ne peux pas décider. –

+0

@jaynaiphone: Pourriez-vous être plus précis? Ce n'est pas une question. – Kriem

+0

yah nous avons besoin de plus de clarté ici - comme vous dites que le code ressemble à ça devrait fonctionner - mais ce qui spécifiquement ne fonctionne pas comme souhaité? – zpesk

Répondre

0

Je crois que vous avez besoin d'utiliser quelque chose comme ceci pour accéder au champ de titlegame d'un autre contrôleur

[AppDelegate sharedDelegate].mainViewController.titlegame; 

Cela peut ne pas être tout à fait correct. Mais je pense que le problème que vous avez est lié à ce concept.

+0

merci pour votre aide. Mais pouvez-vous svp me donner le bon code parce que je suis nouveau dans l'objectif c et iphone donc plz m'aider .. –

+0

Je crois que c'est correct. Remplacez simplement AppDelegate par le nom de votre appDelegate. Laissez-moi savoir ce qui se passe. –

Questions connexes