2010-09-21 7 views
0

j'ai un problème que ... je travaille sur la navigation basé apps..when je presse un bouton dans la deuxième screen..it montre une nouvelle vueallant d'une vue à une autre vue

button=[[UIButton alloc]initWithFrame:frame]; 
button.frame = CGRectMake(60,250,200,69); 
[button setTitle:@"Crack Now" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
button.opaque; 
[self.view addSubview:button]; 

-(void)buttonClicked{ 
    secondViewcontroller=[[SecondViewController alloc]initWithNibName:@"secondViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:secondViewcontroller animated:YES]; 
    [self.navigationController presentModalViewController:secondViewcontroller animated:YES]; 
} 

-(void)viewDidLoad{ 

    CGRect frame=CGRectMake(80,0,200,100); 
    label=[[UILabel alloc] initWithFrame:frame]; 
    label.text = @"text"; 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [UIColor blueColor]; 
    label.textAlignment = UITextAlignmentLeft; 
    label.font = [UIFont systemFontOfSize:20]; 
    [self.view addSubview:label]; 
    myImage=[[UIImageView alloc]initWithFrame:frame]; 
    myImage.frame=CGRectMake(90,70,150,170); 
    [myImage setImage:[UIImage imageNamed:@"Untitled-3.jpg"]]; 
    myImage.opaque; 
    [self.view addSubview:myImage]; 

    [super viewDidLoad];    
} 

Répondre

1

Je ne comprends pas vraiment ce que vous demandez, mais je peux voir une chose mal avec vous êtes code:

[self.navigationController pushViewController:secondViewcontroller animated:YES]; 
[self.navigationController presentModalViewController:secondViewcontroller animated:YES]; 

vous ne devez utiliser un de ces ..

contrôleur Push vue signifie que la nouvelle vue être poussé sur le récepteur (s elf.navigationcontroller) pile. En d'autres termes, il va pousser dans une nouvelle vue et la barre de navigation affichera un bouton de retour à votre dernière vue.

Le contrôleur de vue modale actuel signifie qu'il présentera une vue modale gérée par le contrôleur de vue donné à l'utilisateur (self.navigationController). Une vue modale n'a pas de bouton de retour. Vous devez appeler [self dismissModalViewController]; pour l'enlever à nouveau.

Editer: Vous devez également libérer secondViewController après avoir poussé ou présenté modal, pour libérer de la mémoire .. [release secondViewController];

0

Et ce que je vois est chaque fois que vous cliquez sur le bouton votre application va tomber en panne. Parce que votre méthode

[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

doit être COLON ne doit pas être là. que vous avez défini la méthode sans expéditeur comme argument

[button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside]; 

et le reste est dit comme ci-dessus

-(void)buttonClicked{ 
    secondViewcontroller=[[SecondViewController alloc]initWithNibName:@"secondViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:secondViewcontroller animated:YES]; 
// [self.navigationController presentModalViewController:secondViewcontroller animated:YES]; 
    [secondViewcontroller release]; 
} 

... HEUREUX CODAGE

Questions connexes