Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Discussion: UIButton action lente

  1. #1
    Invité de passage
    Inscrit en
    octobre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 23
    Points : 2
    Points
    2

    Par défaut UIButton action lente

    bonjour a tous,
    j'ai une bouton son action est de me redérigé vers une UIViewController la boutton fonctionne mais apres un certain temp.
    avez vous des idee pour l'action de ma boutton soit instantanne.
    ViewDidLoad
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    - (void)viewDidLoad {
    	
    	NSError *fileError = nil;
    	
    	NSURL *url = [[NSURL alloc] initWithString:@"http://172.16.50.6/GetIPhone/GetJoueurBis?codeEq=2"];
    	XMLToObjectParser *myParser = [[XMLToObjectParser alloc]
    								   parseXMLAtURL:url toObject:@"Joueur" parseError:nil];
    	NSLog(@"sfdfdfsfs");
    	
    	if(fileError == nil){
    		// audios =[[NSMutableArray alloc ] init];
    		
    		joueurs = [[NSMutableArray alloc] init];
    		
    		for(int i = 0; i < [[myParser items] count]; i++) {
    			Joueur *nouveauJoueur;
    			nouveauJoueur = (Joueur *)[[myParser items] objectAtIndex:i];
    			[self.joueurs addObject:nouveauJoueur];
    		}
    		joueursViewController = [[JoueursViewController alloc] initWithNibName:nil bundle:nil];
    		joueursViewController.joueurs=self.joueurs;
    		
    	} else {
    		NSLog(@"ERREUR DE CHARGEMENT!!!");
    		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur!" 
    														message:@"Echec de connexion." 
    													   delegate:nil 
    											  cancelButtonTitle:@"OK"
    											  otherButtonTitles:nil];
    		[alert show];
    		[alert release];
    	}
    	
    	[url release];
    	[myParser release];
    	
    	
    	//---------------------------set up navigation bar------------------------------------------
    	
    	/*UIImageView *logo = [[UIImageView alloc] initWithFrame:
    						 CGRectMake(0,0,320,
    									self.navigationController.navigationBar.frame.size.height-1)];
    	[logo setImage:[UIImage imageNamed:@"ban TEAM.png"]];
    	[self.navigationController.navigationBar addSubview:logo];
    	[self.navigationController.navigationBar sendSubviewToBack:logo];*/
    	//self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
    	//-----------------------------*******************-------------------------------------------
    	//self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
       
    	naviga = [[UINavigationController alloc]init];
    	naviga.view.frame = self.view.bounds;
    	naviga.delegate = self;
    	
    	
    	[Effectif setBackgroundImage:[UIImage imageNamed:@"EffectifPro.png"] forState:UIControlStateNormal];
    	[Staff setBackgroundImage:[UIImage imageNamed:@"STAFFpro.png"] forState:UIControlStateNormal];
    	[histoire setBackgroundImage:[UIImage imageNamed:@"histoire.png"] forState:UIControlStateNormal];
    	[Palmares setBackgroundImage:[UIImage imageNamed:@"palmares.png"] forState:UIControlStateNormal];
    	 [super viewDidLoad];
    	//self.navigationItem.title =image;
    }
    L'action de ma boutton:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    - (IBAction)myButtonPressed:(id)sender{
    	NSLog(@"Effectif");
    		
    	//joueursViewController.delegate=self;s
    	//JoueursViewController *joueursViewController = [[JoueursViewController alloc] initWithNibName:nil bundle:nil];
    	joueursViewController.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
    	
    	                      //[[self navigationController] pushViewController :joueursViewController animated:YES];
    	[self presentModalViewController:joueursViewController animated:YES];
    	[joueursViewController release];
    	//joueursViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Team" style:UIBarButtonItemStylePlain target:nil action:@selector(back:)];	
    	
    	
    }
    Merci pour votre attention.

  2. #2
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro Aurélien Gaymay
    Technicien Informatique/Webmaster
    Inscrit en
    septembre 2006
    Messages
    3 639
    Détails du profil
    Informations personnelles :
    Nom : Homme Aurélien Gaymay
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2006
    Messages : 3 639
    Points : 15 392
    Points
    15 392

    Par défaut

    Et si tu mets tous ton code entre :

    Code :
    1
    2
    3
    4
    - (IBAction)myButtonPressed:(id)sender{
    
    }
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  3. #3
    Invité de passage
    Inscrit en
    octobre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 23
    Points : 2
    Points
    2

    Par défaut

    C'est le même cas , même j'ai,essayer de maitre l'appel de l'url dans la page appeler est c'est le même cas , je récupère les donner directement mais la redirection qui est lente je ne sais pas d'ou vient le problème j'ai essayer avec pushViewController est avec presenModal est c'est toujours la même chose.

  4. #4
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro Aurélien Gaymay
    Technicien Informatique/Webmaster
    Inscrit en
    septembre 2006
    Messages
    3 639
    Détails du profil
    Informations personnelles :
    Nom : Homme Aurélien Gaymay
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2006
    Messages : 3 639
    Points : 15 392
    Points
    15 392

    Par défaut

    Citation Envoyé par zaghdoud Voir le message
    C'est le même cas , même j'ai,essayer de maitre l'appel de l'url dans la page appeler est c'est le même cas , je récupère les donner directement mais la redirection qui est lente je ne sais pas d'ou vient le problème j'ai essayer avec pushViewController est avec presenModal est c'est toujours la même chose.
    Est-ce que c'est pas tous simplement le serveur qui est lent ?
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  5. #5
    Expert Confirmé
    Homme Profil pro
    Inscrit en
    septembre 2006
    Messages
    2 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : septembre 2006
    Messages : 2 391
    Points : 3 142
    Points
    3 142

    Par défaut

    lancer une requête réseau synchrone à partir de viewDidLoad n'est pas une bonne idée :

    la vue est partiellement ou totalement dessinée, donc l'utilisateur a envie de jouer avec les widgets, mais elle ne répondra pas car le code est bloqué en attente de la réponse réseau.

    Ce genre de code doit se lancer en background (queuing d'un code block par exemple) et évidemment alors la notification par une alerte d'un problème dans cette tâche en background doit se faire autrement, par exemple par un performOnMainThread.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •