Aller au contenu

Most Liked Content


#25927 Liste des sources

Posted by ipodishima sur 24 septembre 2010 - 11:34

Bonjour à tous,

 

Les sources du premier livre ne sont plus disponibles. Il est de toute façon obsolète !

 

Aussi, pour récupérer les sources du second livre, il vous faudra simplement vous rendre ici : 

 

https://github.com/ipup/iPuP-Livre

 

Ensuite, vous verrez que c'est du git et des sous modules. Je vous invite donc à vous pencher sur git, c'est très intéressant !

Si git est installé sur votre machine, écrivez la ligne suivante dans votre terminal :

 

 

git clone https://github.com/ipup/iPuP-Livre.git && cd iPuP-Livre && git submodule update --init --recursive



#25862 Fiche 36 — Utiliser Core Data

Posted by ipodishima sur 23 septembre 2010 - 13:54

Bonjour,

Voici la discussion officielle de la fiche n°36.

"Ou comment se simplifier la vie lorsque l’on souhaite stocker des données."

Bonne lecture !


#25826 Fiche 3 — Où trouver les ressources adéquates ?

Posted by ipodishima sur 23 septembre 2010 - 13:25

Bonjour,

Voici la discussion officielle de la fiche n°3.

"Le Web regorge de ressources pour répondre à toutes vos questions. En voici une vue d’ensemble"

Bonne lecture !


#179 Un peu de pub : supporter le site

Posted by heyfeel sur 18 février 2009 - 11:27

Hello iPuP,


A titre purement informatif :
La pub logée dans la bannière iPuP, est et sera l'unique publicité du site : en espérant qu'elle ne gêne pas votre lecture.

Pourquoi mettre de la publicité ?
"Une geste pour la planète" vous connaissez ? :) Et bien, supporter le site iPuP fonctionne de la même manière. Si jamais vous voulez donner un petit coup de pouce au site, il vous suffit de cliquer :

sur la pub qui s'affiche sur la banière




Bien sûr, il n'y a rien d'obligatoire et c'est au bon vouloir de chacun ...  


Important : un seul clic suffit par 24h ! (les autres ne seront pas comptabilisés)


#10346 Tester son application sur son iphone sans payer la licence apple !

Posted by antho35 sur 16 février 2010 - 21:01

Pour ceux que ça intéresse m contacter par mail :-)

Bonjour,

En faite je voudrais savoir s'il existe un moyen de programmer des applications pour l'iphone sans forcément avoir de MAC. J'ai pas assez d'argent pour le moment je ne peux pas m'acheter de MAC pour l'instant mais j'ai pas envi de perdre de temps dans la programmation.

merci à vous :-)




#48343 CoreGraphics ou PNG?

Posted by tomy29 sur 05 mars 2013 - 10:52

Bonjour

 

Aux pro de CoreGraphics :

Je souhaite réaliser cette fleche

Est il judicieux d'utiliser Core Graphics ou plutot la dessiner sous GIMP par ex. ?

 

Merci.




#48096 [JEU] **NastySpider**

Posted by iSEBlog sur 13 janvier 2013 - 16:10

Bonjour,

NastySpider est un jeu de réflexion/action. Vous devez déployer la plus grande toile d'araignée et attraper les insectes pour nourrir l'araignée. NastySpider dispose de trois modes de jeux et la gestion des scores GameCenter.
C'est une application universelle compatible iPhone 3GS, iPhone 4, iPhone 5, iPod et iPad.

Bonne amusement :)

Lien:
https://itunes.apple...?l=fr&ls=1&mt=8

http://iseblog.blog.free.fr/

Codes promos:
N43LK3THMPP7
77AE7J36696A
ALHPKYJEN4XL


Image IPB


Image IPB


#44091 iTunes Connect permet (ENFIN) de changer la langue par défaut !

Posted by ipodishima sur 18 janvier 2012 - 10:11

iTunes Connect évolue !

Très bonne nouvelle ce matin ! iTunes Connect vient enfin de corriger un problème récurrent, surtout dans les pays non anglophones !

Avant : lorsque l’on créait une licence et qu’on soumettait notre première application, il nous était demandé de renseigner une langue par défaut que l’on ne pouvait changer … À quoi correspond cette langue ? C’est tout simplement la langue affichée par défaut dans les AppStores des pays pour lesquels vous n’avez pas fourni de traduction. En clair, vous mettiez français comme langue, si vous ne traduisiez pas en espagnol votre description, keywords, captures etc, alors les espagnols voyaient votre description en français …

Pas très pratique sachant qu’hors pays francophones, on est plus susceptible de comprendre l’anglais que le français … ! Il existait évidemment une solution mais qui prenait une bonne demi heure à mettre en place : mettre une description en anglais à la main pour toutes les traductions possibles sous iTunes Connect … Autant dire un travail rébarbatif dont on se passerait bien.

Il faut savoir en plus que le marché allemand par exemple est bien supérieur au marché français en Europe … Leur présenter une application en anglais est surement mieux qu’en Français … !

Il va sans dire que le minimum pour une application est d’être traduite en anglais + la langue dans laquelle vous développez.

Attention cependant, il faut bien distinguer ce problème de langue par défaut, de la langue de votre application. En effet, cette langue par défaut dans iTunes Connect ne concerne QUE les metadata de votre application dans l’App Store. Une fois que votre application est téléchargée sur un téléphone dans une langue X, c’est la valeur de la clé Localization native development region qui prend le dessus. Si votre application est traduite en français et en anglais, et si vous avez fr comme valeur, alors les espagnols auront votre application en français. Si vous mettez en, alors ils auront la version anglaise, etc.

Maintenant : nous pouvons changer la langue par défaut pour chaque application sur le store ! Quel gain de temps !

Pour cela, cliquez sur votre application, puis dans app informations, vous avez Edit. Enfin …

Image IPB

Voici le mail de iTunes Connect :

Dear …..

You can now edit the default language of your app’s metadata on iTunes Connect at the app level and it can be changed at any time. Customers are more likely to read about your app if they can do it in their native language, and we encourage you to translate your metadata for each of the countries in which you offer apps.

To edit the default language for an app, go to the Manage Your Applications module, then click Edit for your App Information. Any previously added localizations will be available for selection in the Default Language dropdown. If you wish to add a new localization to your app, you can do so from the App Localization section of your app’s version details page. Adding a new localization will require a binary update so that Apple can review it.

If you need assistance translating your metadata into additional languages, there are third party vendors who can provide internationalization and localization services for your app.

Regards,

The App Store team

Source : blog iPodishima


#25920 Universal Apps et le poids

Posted by GeorgioA sur 24 septembre 2010 - 09:58

Bonjour à tous.

Mon premier post ici est pour demander votre avis sur la question du poids des applis universelles.

Le soucis réside dans le poids des images. (le code est commun donc c'est un bon point).

Je viens de finir une appli pour iPad et une appli pour iPhone. Au final je me retrouve avec une applis iPad de 11Mo~ et iPhone 3Mo~.

Si je fais une appli unverselle, je vais me retrouver avec un applis de ~15 Mo.

Que pensez vous de cet embonpoint pour mes utilisateurs iPhone qui téléchargeront l'appli en 3G voir en EDGE....

Avez vous des solution pour ce genre de soucis?


#48805 Multiple TableView

Posted by touladi sur 17 mai 2013 - 13:21

Est-ce envisageable d'avoir jusqu'a 10 tableviews (environ 60 px de large chacun) en même temps dans la même view? Les 10 font des requêtes SQLite. J'imagine que non parce que trop demandant au point de vue ressource... Qu'en pensez-vous?




#48778 Les jeux de TonTon : ArbroMonstres

Posted by Paisible sur 10 mai 2013 - 12:41

Bonjour,

 

Le 1er opus de la série "Les jeux de TonTon" est disponible sur l'iTunes Store.

 

Il s'intitule ArbroMonstres et il s'agit d'un jeu ludo-éducatif ayant pour objectif d'accompagner les enfants de 4-6 ans dans leur apprentissage des formes, couleurs et dimensions de manière ludique et récréative.

 

ArbroMonstres.png

 

A télécharger sur : http://bit.ly/133z6Wc

Miniature(s) jointe(s)

  • 2013-05-04 13.22.10.png
  • 2013-05-04 13.22.34.png
  • 2013-05-04 13.22.39.png



#25931 Récupérer les codes sources du livre

Posted by ipodishima sur 24 septembre 2010 - 11:55

Bonjour à tous,

Si vous souhaitez récupérer les codes sources du livre, il y a plusieurs étapes à respecter :). Ce n'est pas pour vous embêter, juste pour s'assurer que le travail que nous avons fourni serve à quelque chose !

- Acheter le livre ! Et oui, cela paraît logique
- Vous inscrire sur le forum
- [nospam=livre@ipup.fr]Nous écrire un mail ici[/nospam] avec ce format :
Objet : Achat du livre - codes sources - Pseudo
Message : Ce que vous voulez :)
Il est important de nous donner votre pseudo lors de l'inscription

Ensuite, nous recevrons un mail, auquel nous répondrons dans un délai de 1-2 jours maximum pour vous poser une question ! Si c'est une bonne réponse, à vous les codes sources !

+


#25828 Fiche 5 — Coder quelques éléments simples

Posted by ipodishima sur 23 septembre 2010 - 13:27

Bonjour,

Voici la discussion officielle de la fiche n°5.

Bonne lecture !


#1784 Docs pour les nuls : Jouer un fichier Audio

Posted by Jennifer75a sur 03 mai 2009 - 19:42

Bonjour,

Documentation pas à pas inspirée du Tutoriel n°11 du site http://www.ipup.fr

mon site : http://web.me.com/jennifer.aubinais/

Jennifer


#117 Exercice du tutoriel n°5

Posted by ipodishima sur 17 février 2009 - 22:54

Pour approfondir un peu (beaucoup :rolleyes: je l'avoue) le tuto 5, vous allez faire quelque chose ressemblant à ça :
Image IPB
Image IPB

Enoncé :

Ajouter un textField à votre UIImageView, autoriser les interactions pour cette vue(cocher "User Interaction Enabled")
Image IPB

Il vous faudra aller chercher dans les propriétés du textField pour que "Enter" soit "Done", mettre par défaut un clavier numérique, ...

Bon courage...

Pour vous aider :

Pour convertir un NSString en Integer :
// déclaration du NSInteger dans le .h
NSInteger indexTextField;

//dans le .m
//Conversion du chiffre dans le TextField en Integer
indexTextField = [[monTextField text]integerValue];
Vous avez réussi?

Compliquons un peu la chose en faisant ceci :
Image IPB

Le textField à droite vous permet d'ajouter un objet à la fin du tableau.

Aide : n'oubliez pas de réécrire dans votre fichier texte après avoir ajouté l'élément dans le tableau!

Les solutions sont ici :
Sources Exo 1 et Exo 2. Mais, pour progresser, rien ne vaut le fait de s'y mettre et patauger!

NB : dans les sources, suite à une remarque très pertinente de Bidou, j'ai changé la gestion du numéro d'index/objet à afficher


#1170 un site testeur d'applications ...

Posted by heyfeel sur 07 avril 2009 - 19:44

Ce n'est pas un coup de pub que j'effectue en ce moment même, mais plutôt un partage d'un petit coup de coeur pour ce site très intéressant.
Ce site se charge de tester un grand nombre d'applications, et de les juger : je le trouve, simple, beau et fonctionnel ... donc pourquoi pas vous ?!

lien : http://www.applicationiphone.com/


L'intérêt est aussi de dénicher quelques belles trouvailles qui seraient vouées à suffoquer dans les profondeurs de l'App Store sans un bon test poussé (comme ceux proposés par ce site).


#1 Tutoriel n°1 : Pour commencer ...

Posted by ipodishima sur 14 février 2009 - 17:07

En guise d'introduction de notre série de tutoriels, j'ai la lourde tâche de te donner l'envie et les outils qui feront de toi un développeur iPhone de génie, un Mac Addict. Et qu'on se le dise tout de suite, quiconque entre dans l'univers Mac, de prêt ou de loin, tombe instinctivement sous le charme de la célèbre firme à la pomme croquée. ;)
Trêve de propagande, attelons nous aux pré-requis du parfait développeur iPhone.
Image IPB

1) Le matériel : un Mac, Xcode et le SDK d'Apple

° un Mac
Sans aucun détour je t'annonce que pour programmer sur iPhone, il te faut absolument un Mac qui soit au minimum basé sur une architecture Intel.(amateurs de PC passez votre chemin ou faites comme moi et faites vous offrir un Mac :cool:). Et si Steve Jobs était là, il dirait sûrement que plus ton Mac est récent, et mieux c'est !

° Xcode
Maintenant que tu as ton Mac entre les mains,  tu auras besoin de XCode. Ce logiciel fort utile pour nous est présent dans le CD d'installation de Mac OS. Bien sûr, je ne te fais pas l'offense de spécifier qu'il est fourni par Apple et qu'il te permet de développer confortablement ton code (Xcode est à l'Objective-C ce qu'Eclipse est au Java).
Aide : le dossier développeur est mis par défaut dans le répertoire "Macintosh HD". Il contient tous les logiciels de la suite "developer".

° SDK Apple
Génial tout ça, mais sans un bon SDK tu ne peux toujours pas coder :P. Il faut donc installer le SDK d'Apple sur ton Mac au plus vite.
"Monsieur, Monsieur c'est quoi un SDK ?" J'ai envie de te répondre simplement qu'un SDK est une grande bibliothèque dans laquelle tu as des fonctions toutes faites et prêtes à l'emploi.
Téléchargement du SDK : crée un compte ici, ou utilise ton compte Itunes par exemple. Clique sur "ADC Member Site"

Image IPB


Deux options s'offrent à toi. Soit télécharger le SDK gratuitement et développer tes applications uniquement sur simulateur, soit payer la licence pour mettre tes applications sur iPhone ou iPod Touch. (Dans un premier temps, le simulateur devrait suffire et c'est ton porte-monnaie qui te dira merci)
Ici pour télécharger ce fameux SDK.
Super ! A te voir comme ça, on dirait vraiment un développeur iPhone. :cool:


Mais d'ailleurs, sais-tu au moins quelle est l'utilité de programmer des applications pour iPhone ?
En premier lieu, je dirais que c'est toujours enrichissant de connaître un nouveau langage de programmation. Bon d'accord, j'avoue que c'est surtout super excitant de mettre au point sa propre application et de pouvoir l'exporter sur son iPhone et celui de ses potes. (tout de suite ça te rend plus populaire). Mais tu l'as deviné, programmer sur iPhone c'est aussi un effet de mode grâce auquel tu peux peut-être gagner un peu (beaucoup) d'argent de poche, à condition d'être bon mais ça tu l'es déjà ! :)

Car l'iPhone c'est ...
Un téléphone portable, et jusque là rien d'extraordinaire. Sauf que celui-ci est bourré de haute technologie : 3G pour l'internet, Multi-Touch pour un univers entièrement tactile, GPS pour une localisation en temps réel, accéléromètre, fonctions audio de l'iPod,  appareil photo numérique, ... et tout ça dans un seul appareil :P . D'autant plus qu'il est doté d'un processeur plus performant que celui d'une Nintendo DS ou d'une PSP. (Même 007 est à la traîne avec ces vieux portables japonais) Je te laisse donc imaginer toutes les possibilités qui s'offrent à toi, futur développeur d'applications sur iPhone.
Et au cas où tu n'arriverais vraiment pas à bien visualiser le panel de possibilités, je te laisse baver sur ces quelques exemples.

Image IPB

Image IPB

Image IPB


Pas besoin de se la jouer, car pour l'instant tu ne sais même pas quel langage de programmation tu vas utiliser pour coder tes futures applications. :lol:



2) Le langage de programmation : l'Objective-C

On va parler un peu de l'environnement de développement dans lequel tu vas être plongé à partir de ce jour. Sur le site développeur d'Apple, tu trouveras une mine de ressources : documentations très fournies, exemples de Code, ... Evidemment tous ces supports sont en anglais (je sens comme une atmosphère pesante d'un coup), mais comme tu es un super développeur, l'anglais technique ne te fait pas peur ! :D
On en vient directement à ce qui nous intéresse ici : pour développer sur iPhone, tu auras besoin d'apprendre, entre autres, l'Objective-C.

Qu'est ce que l'objective-C ?
Comme je suis un peu de la jeune génération qui adule wikipedia, voici un petit aperçu de ce qu'est l'Objective-C sur wikipedia.

Très très très important : ton apprentissage de l'Objective-C sera facilité si tu as au préalable des notions de C++ et Java (le langage Objet en général). Si tu es totalement novice en programmation, pas de panique! ;) L'équipe iPuP t'invite de ce pas à visiter ce site, le site du zéro, où tu trouveras les meilleurs cours pour débuter en C/C++/Java et autres langages exotiques.
Et pour les plus connaisseurs, je les invite à aller dans la section "Lectures utiles et autres supports" du forum pour y trouver des documents faisant l'analogie entre Objective-C et C++/Java. Je vous assure que ça aide énormément !


Ce tutoriel d'introduction est enfin terminé. La prochaine étape de ton apprentissage se situe au niveau 2.
Merci de ton attention et bons débuts en programmation iPhone.



Heyfeel

version imprimable


#47950 XRumer 7.7.35 ELITE is the most powerful program for SEO.

Posted by Alexishig sur 29 novembre 2012 - 07:04

XRumer 7.7.35 Elite is the best program for black-SEO!

+ automatically register profiles, edit profiles, make topics/replies on forums
+ automatically confirm links in e-mails (and auto-register email accounts for that!)
+ automatically break captchas during registering and posting (only XRumer 7.7.35 can break more than 150 types of captchas, included ReCaptcha and flash-captchas)
+ XRumer recognize and answer the antibot-questions (like "2+2=?", "What is capital of England?", etc.; ONLY XRumer 7.7.35 have answers on more than 70.000 antibot questions!)
+ this program has unique intellectual mode "Antispam": its a spesial thematic posting
+ automatically update and check proxy-lists for 100% anonymity
+ its works withs blogs and social networks
+ "Mass-PM" mode make mass posting personal messages to ALL members of ALL forums simultaneously
+ there are lot of articles about XRumer on recourses with high reputation: "Washington post", "WikiPedia.Org", "Sophos Labs", "Symantec"
+ monthly updates increase powerful of this software everytime, XRumer has a 7-years history

And, by the way, XRumer price will be officially increased up to $650 in 5 january 2013, with new important functions.

Need more info? Just Google ;)


#25827 Fiche 4 — Introduction à Xcode

Posted by ipodishima sur 23 septembre 2010 - 13:26

Bonjour,

Voici la discussion officielle de la fiche n°4.

Bonne lecture !


#13425 Tuto membre : Utiliser un RootViewController pour gérer ses vues

Posted by ipodishima sur 15 avril 2010 - 09:06

Bonjour tout le monde,

Voici un tutoriel qui vous est proposé par HiMac !
Image IPB

Bonne lecture


Ce tutoriel a pour objectif de vous introduire ‘la notion de RootViewController’. Le RootViewController est une classe qui sera instanciée dès le lancement de l’application et qui ne sera jamais affichée à l’écran. Son travail sera de gérer l’ajout de nouvelle vue à l’écran ou leur suppression. Ce tutoriel est destiné aux débutants.

[titre]1) Créer un nouveau projet xCode[/titre]

Optez pour le projet de type ‘Window-based Application

Image IPB

Nommez votre projet. Dans ce tutoriel nous l’avons nommé ‘MonApp’.

[titre]2) Création des vues[/titre]
Commençons par créer nos vues. Chaque vue possédera un ViewController (UIViewController), une vue  (UIView) ainsi qu’un ficher .xib. A cela s’ajoute notre RootViewController. Ce dernier, par contre, n’aura pas de vue. Notez que l'on pourrait se passer de ces vues, et se servir des vues crées par défaut pour un viewController (propriété de UIViewController)
Créons de ce pas notre première vue nommée MainMenuView. Pour ce faire suivez les instructions ci-dessous :

1. Allez dans le menu File > New file... ou faites directement le raccourci clavier Pomme-n.

2. Nous allons premièrement créer notre vue (UIView). Sélectionnez le fichier Objective-C class et définissez Subclass autant que UIView.
Image IPB
Nommez là MainMenuView.m puis validez avec le bouton Finish.

3. Créons le ViewController qui contrôlera les événements de notre vue MainMenuView ainsi que du xib. Créez un nouveau fichier et sélectionnez cette fois-ci le type de fichier suivant : UIViewController subclass. Nommez le MainMenuViewController. Généralement lorsque l’on créé une classe ‘Controller’ on suffixe son nom avec ‘Controller’.

4. Il reste encore le fichier .xib à créer. Créez un nouveau fichier de type View XIB. Référez vous à la capture d’écran ci-dessous si besoin est.
Image IPB

Nommez le MainMenuViewController.

5. Vous l’avez sans doute remarqué, à force de créer des fichiers ça devient vite le fouillis dans Xcode.Passons à l’action en classant nos classes...

Créez un nouveau dossier dans Xcode en faisant un clique droit sur le fichier MonApp et sélectionnez Add puis New Group.

Image IPB
Renommez le dossier MainMenuView.
Glissez-déposez MainMenuView.h et .m ainsi que MainMenuViewController.h et .m dans ce dossier. Rangez le fichier MainMenuViewController.xib dans le dossier Ressources.
Au passage renommez le dossier Classes par Application Controllers.

Répétez cette séquences d’opérations pour créer de nouvelles vues. Dans ce tutoriel nous avons créé les vues suivantes : MainMenuView, GameView et AboutView. Avec à chaque fois un nouveau dossier.

Avant de passer au chapitre suivant il nous faut régler une dernière chose. Ouvrez le fichier MainWindow.xib. Ajoutez une objet UIViewController et définissez sa classe comme étant RootViewController. Sauvez le tout. On va créer la classe RootViewController au chapitre suivant.
Image IPB
[titre]3) RootViewController[/titre]

Il nous manque encore une classe et pas des moindre puisqu’il s’agit du RootViewController. Pour créer ce Controller relisez le point 3 du chapitre précédent. Déposez ce RootViewController dans le dossier Application Controllers.

[info]Pause théorie. Observons le déroulement de l’ouverture de l’application tel que nous le voulons. Lors du chargement du XIB MainWindow.xib, celui-ci va automatiquement instancier notre classe RootViewController. Puis, lors de l’exécution de la méthode applicationDidFinishLaunching: de notre délégué (ici MonAppAppDelegate) on affichera à l’écran la vue de RootViewController. La méthode viewDidLoad du RootViewController  sera appelée une fois que la vue du RootViewController sera chargée en mémoire. Dans cette méthode, on appellera une fonction créée par nos soins qui va afficher par dessus la vue du RootViewController la vue désirée. Ici, en l'occurrence, ça sera MainMenuView. Ca ne vous parait peut-être pas très clair alors passons à la pratique pour éclaircir les choses. [/info]

Nous allons enfin pouvoir commencer à coder. Dans un premier temps ouvrez le fichier RootViewController.h et déclarez les classes ‘ViewController’ que le RootViewController va devoir gérer. N’oubliez pas les getter/setter sous la forme @property.
Tant qu’on y est déclarons déjà les méthodes suivantes dans le .h :
- (void)loadMainMenuViewController;
- (void)changeViewToMainMenuView:(id)sender;
- (void)loadGameViewController;
- (void)changeViewToGameView:(id)sender;
Des explications viendront un peu plus tard.

On a donc cela pour le header (.h) :
#import <UIKit/UIKit.h>

@class MainMenuViewController;
@class GameViewController;

@interface RootViewController : UIViewController {
	MainMenuViewController *mainMenuViewController;
	GameViewController *gameViewController;
}
@property (nonatomic,retain) MainMenuViewController *mainMenuViewController;
- (void)loadMainMenuViewController;
- (void)changeViewToMainMenuView:(id)sender;
@property (nonatomic,retain) GameViewController *gameViewController;
- (void)loadGameViewController;
- (void)changeViewToGameView:(id)sender;

@end
Maintenant ouvrez le .m correspondant (RootViewController.m) , importez les classes ‘ViewController’ et n’oubliez pas de faire les @synthesize des @property correspondant. Nous allons écrire le code qui permettra au RootViewController de charger le MainMenuView juste après l’ouverture de l’application. On reprend donc la méthode - (void)loadMainMenuViewController: et on la complète ainsi :

- (void)loadMainMenuViewController {
	MainMenuViewController *viewController = [[MainMenuViewController 	alloc]initWithNibName:@"MainMenuViewController" bundle:nil];
	self.mainMenuViewController = viewController;
	[viewController release];
}
Cette méthode alloue et initialise une instance de la classe MainMenuViewController puis attribue cette instance à la variable de classe mainMenuViewController. Dès lors, on peut se débarrasser de l’instance viewController.

Ensuite décommentez la méthode - (void)viewDidLoad et insérez les lignes suivantes entre ses accolades :

[super viewDidLoad];
[self loadMainMenuViewController];
[self.view addSubview:mainMenuViewController.view];
On fait appel à notre méthode fraîchement créée puis on fait afficher la vue du MainMenuViewController par dessus celle du RootViewController à l’écran. Le self.view correspond à la vue du RootViewController.

Avant de faire un petit Build and Go de notre application pour voir où on en est, il nous faut modifier certaines choses. Rendez-vous dans le fichier MonAppAppDelegate.h et remplacez le code actuel par celui-ci :

#import <UIKit/UIKit.h>

@class RootViewController; // ligne ajoutée

@interface MonAppAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    IBOutlet RootViewController *rootViewController; // ligne ajoutée

}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController; // ligne ajoutée
@end
Explications : On ajoute simplement une variable de type RootViewController ainsi que son setter/getter. On rajoute IBOutlet car la variable devra être accessible via Interface Builder.

Et dans le .m adaptez de la sorte :
#import "MonAppAppDelegate.h"
#import "RootViewController.h" // ligne ajoutée

@implementation MonAppAppDelegate 

@synthesize window,rootViewController; // ligne modifiée

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    
    // Override point for customization after app launch    
    [window addSubview:rootViewController.view]; // ligne modifiée
    [window makeKeyAndVisible];
}

- (void)dealloc {
    [rootViewController release];  // ligne ajoutée
    [window release];
    [super dealloc];
}
Sauvegardez les modifications.

On fait encore un rapide tour dans le MainWindow.xib.

Liez l’outlet rootViewController (de MonAppAppDelegate) à l’objet RootViewController. Jetez un coup d’oeil à la capture d’écran ci-dessous si jamais.

Image IPB
Vérifiez que vous avez bien ces connexions dans la classe MonAppAppDelegate :


Image IPB

Fermez le document MainWindow.xib et ouvrez MainMenuView.xib. Définissez le File’s Owner comme étant MainMenuViewController :


Image IPB

Et vérifiez que sa vue soit bien la View (UIView) :


Image IPB

Insérez un label et deux boutons dans la vue.
Sauvez le tout, quittez Interface Builder et cliquez sur le bouton Build and Go.

[info]Nous aurions aussi pu régler la classe de notre vue (UIView) comme étant MainMenuView. Cependant, dans le cadre de ce tutoriel, on laisse tel quel.
[/info]
Normalement la vue du MainMenuViewController s’affiche bel et bien à l’écran. La vue de notre RootViewController s’est elle aussi affichée mais comme prévu elle a directement empilé la vue du MainMenuViewController.

Faisons en sorte qu’un bouton de MainMenuViewController.xib permettent d’accéder au GameView. Pour ce faire, retournons au fichier RootViewController.m. Implémentez la méthode -(void)loadGameViewController selon le même principe qu’avant. Maintenant il nous faut une méthode qui permet d’effacer la vue courante et d’afficher la vue voulue (ici GameView). On implémente donc la méthode - (void)changeViewToGameView:(id)sender ainsi ;
- (void)changeViewToGameView:(id)sender {
	UIViewController *currentView = (UIViewController*)sender;
	if(!gameViewController)
		[self loadGameViewController];

	[currentView.view removeFromSuperview];
	[self.view addSubview:gameViewController.view];
}
Cette méthode sera déclenchée par notre bouton situé dans la vue de MainMenuViewController. Dans un premier temps on identifie quel viewController exécute cette méthode (cf. ligne 2). Les deux lignes suivantes servent à instancier notre classe GameViewController. Si cette vue a déjà été instanciée (ou affichée à l’écran si on veut) il n’est pas nécessaire de créer une nouvelle instance de celle-ci, d’où notre if.
Ensuite il suffit d’effacer la vue courante puis d’afficher la nouvelle vue.

On se rend dans le fichier MainMenuViewController.m pour définir la méthode de type IBAction qui va déclencher cette série d'événements. On code donc cela :
- (IBAction)startGame:(id)sender {
	[appDelegate.rootViewController changeViewToGameView:self];
}
N’oubliez pas d’importer le RootViewController.h ainsi que d’écrire la signature de la méthode startGame: dans le fichier MainMenuViewController.h.

Pour faire appel à la méthode changeViewToGameView: qui fait partie d’une classe différente, on passe par l’intermédiaire d’un delegate.  Il faut, comme n’importe quelle autre variable, là déclarer dans le header de MainMenuViewController :
#import <UIKit/UIKit.h>
@class MonAppAppDelegate; // ligne ajoutée

@interface MainMenuViewController : UIViewController {
	MonAppAppDelegate *appDelegate; // ligne ajoutée
}
- (IBAction)startGame:(id)sender;
@end
Dans la méthode viewDidLoad: insérez cette ligne de code :
appDelegate = (MonAppAppDelegate *)[[UIApplication sharedApplication] delegate];
Ce qui permet de définir la variable appDelegate. Rajoutez aussi #import ‘MonAppAppDelegate.h’ dans le MainMenuViewController.m.

Si on reprend la ligne de code suivante :
[appDelegate.rootViewController changeViewToGameView:self];
on remarque que l’on demande l’objet rootViewController (vu qu’il contient la méthode changeViewToGameView justement) et qui est atteignable par le delegate de l’application entière.


Remarquez que l’on envoi self comme argument de la méthode changeViewToGameView:. Lorsque la méthode sera appelée elle saura quelle vue est actuellement à l’écran pour pouvoir la supprimer.


Bien, sauvez les modifications puis ouvrez le fichier GameViewController.xib. Rajoutez un label ainsi qu’un bouton à la vue. Comme précédemment avec le MainMenuView.xib définissez le File’s Owner comme étant GameViewController et liée celui-ci à la vue. Fermez ce xib, ouvrez le MainMenuViewController.xib et faites la connexion entre un bouton et le File’s Owner pour lui attribuer la méthode startGame:.
Sauvegardez le tout puis faites un Build and Go. Vous devriez pouvoir afficher la GameView mais pas encore revenir au MainMenuView.

Pour ce faire rien de plus simple. Il suffit d’implémenter la méthode changeViewToMainMenuView: définie plutôt dans le header du RootViewController. Essayez de l’écrire par vous même. Référez vous, au cas où, à la méthode changeViewToGameView.

Ensuite, ouvrez le fichier GameViewController.m et basez vous sur ce que l’on a fait précédemment avec le MainMenuViewController. Faites la liaison entre le bouton de la vue du GameView (GameView.xib) et le File’s Owner afin de définir l’action du bouton (la méthode backToMenu: par ex.).
Voilà, on y est enfin ! Compilez et exécutez le tout, vous devriez être en mesure de passer d’une vue à l’autre sans problèmes. A vous de terminer ce tutoriel en rajoutant notre troisième vue, l’AboutView.





Pour finir, je tiens à remercier le site ipup.fr et plus particulièrement ipodishima pour sa précieuse aide. Je remercie par la même occasion le forum pommedev.com.



Télécharger les sources du projet.

HiMac