iphone: проблема с событиями - PullRequest
0 голосов
/ 28 марта 2009

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];
}

работает нормально

но в методе ViewDidLoad EventViewController я не могу определить значение этой метки

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);
}

но здесь, когда я возвращаюсь к EventViewController, метка становится пустой, почему ?? Пожалуйста, скажите мне ..

1 Ответ

0 голосов
/ 28 марта 2009

Полагаю, вам нужно использовать что-то подобное для доступа к полю titlegame с другого контроллера

[AppDelegate sharedDelegate].mainViewController.titlegame;

Это может быть не совсем правильно. Но я думаю, что ваша проблема связана с этим понятием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...