J'ai poussé le contrôleur de vue et chargé le bouton arrondi WebView et le bouton rectangulaire rectangulaire personnalisé dans le coin inférieur gauche de la vue en utilisant la méthode par programmation.Bouton de retour du bouton de retour personnalisé sur le contrôleur de vue poussée
-(void)loadView {
CGRect frame = CGRectMake(0.0, 0.0, 480, 320);
WebView = [[[UIWebView alloc] initWithFrame:frame] autorelease];
WebView.backgroundColor = [UIColor whiteColor];
WebView.scalesPageToFit = YES;
WebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin);
WebView.autoresizesSubviews = YES;
WebView.exclusiveTouch = YES;
WebView.clearsContextBeforeDrawing = YES;
self.roundedButtonType = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
self.roundedButtonType.frame = CGRectMake(416.0, 270.0, 44, 19);
[self.roundedButtonType setTitle:@"Back" forState:UIControlStateNormal];
self.roundedButtonType.backgroundColor = [UIColor grayColor];
[self.roundedButtonType addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
self.view = WebView;
[self.view addSubview: self.roundedButtonType ];
[WebView release];
}
C'est l'action que j'ai ajoutée en tant que bouton de navigation arrière.
-(void)back:(id)sender{
[self.navigationController popViewControllerAnimated:YES];
}
-(void)viewDidUnload{
self.WebView = nil;
self.roundedButtonType = nil;
}
-(void)dealloc{
[roundedButtonType release];
[super dealloc];
}
Ici, quand cliquez sur le bouton Retour il montre la vue précédente, mais l'application est resté coincé dans cette vue et GDB affiche signal reçu programme: message EXC_BAD_ACCESS.
comment résoudre ce problème?
Merci,
Merci, Kenny J'ai enlevé un d'autorelease à WebView et c'est le travail dans mon cas bien. [WebView release] publiera-t-il également la requête http ou déchargera-t-il des données de WebView et la connexion à URL sera-t-elle active? Je m'occuperai également du cadre d'installation et du titre avant l'affectation. Thasnk – TechFusion
@Tech: Tout ce que la vue Web va posséder sera '-release''d lorsque la vue web est '-dealloc''ed (note release ≠ deallocate). Dans votre cas, 'self' va" conserver "la vue web lors de l'assignation' self.view', donc "-release''ing ne supprimera pas les connexions. – kennytm
Bonjour Kenny, Je crée aussi self.WebView = nil dans ViewDidUnload(). donc pour tuer la connexion devrais-je ajouter ajouter suite à la tâche dealloc? - (vide) dealloc { [super dealloc] [self.WebView dealloc] // Est-ce correct? Merci, – TechFusion