Xcode: relation Entre la Vue et de Contrôleurs de Délégué d'Application
C'est probablement une question de noob, mais ne peut pas obtenir ma tête autour de lui.
Comment puis-je établir une connexion entre 2 viewcontrollers ou une-vue-contrôleur et mon appdelegate?
ce que j'ai l'habitude de faire est d'ajouter ce qui suit à mon délégué d'application "h" fichier
@class RootViewController;
@interface TabBarWithSplitViewAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
RootViewController *rootViewController;
}
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@end
et puis créer une connexion dans l'Interface Builder. de ma racine-vue-contrôleur à l'application délégué automatiquement et me dit c'est la rootViewController que j'ai ajouté ci-dessus.
et si vous faites cela sur l'app délégué "m" fichier:
#import "RootViewController.h"
NSLOG(@"Controller %@",rootViewController);
il vous donne un tas de chiffres indiquant qu'il existe un lien
Mais comme vous le savez avec xcode 4, ce qui a changé depuis que généralement vous n'avez plus la main.xib où vous pouvez créer la connexion, vous n'avez presque tous ces connexions par programmation.
j'ai tout essayé d'utiliser le même code sans le "IBOutlet", en ajoutant:
rootViewController = [[RootViewController]alloc] init;
mais rien ne semble fonctionner.
quelqu'un peut-il vous aider?
Merci d'avance
ne pouvez pas utiliser les notifications depuis que j'ai fait ont pour avoir de communication entre eux. et changer des choses sur mon rootviewcontroller de l'appdelegate!
OriginalL'auteur Ponchotg | 2011-07-03
Vous devez vous connecter pour publier un commentaire.
Vous sera essentiellement souhaitez créer un ivar de votre point de vue contrôleur dans votre délégué d'application.
puis en faire la synthèse, dans la mise en œuvre de fichier.
Puis, quand le point de vue du contrôleur de charge, appeler quelque chose le long des lignes de ce:
À ce stade, vous avez maintenant une connexion directe à votre vue-contrôleur à partir de l'app délégué. De même, vous pourriez faire face à appeler délégué d'application des méthodes de la vue-contrôleur. Dans ce cas, de vous mettre en place un délégué de l'avis du contrôleur d'en-tête.
nouveau synthèse dans le fichier d'implémentation.
Maintenant, quand vous êtes dans
viewDidLoad
, vous pourriez dire quelque chose comme ceci:Qui devrait vous donner ce dont vous avez besoin pour y aller, donc j'espère que ça aide
appDelegate.myVC=self
, Xcode, dit"Implicit conversion of an Objective-C pointer to 'int *' is disallowed with ARC"
. A votre réponse non-ARC seulement? Si oui, pourriez-vous s'il vous plaît m'aider?Cette lettre a été écrite de pré-ARC, mais il ne devrait pas être affectées par elle, car il n'y a pas de
retain
ourelease
appelé. Assurez-vous d'avoir le bon@property
fonctions de prêt (dans ce cas, il sera quelque chose comme @property (nonatomic, fort) id délégué). Also, ensure you are passing the correct variable. The error you are receiving, specifically the
int *` partie devrait certainement être regardé. Unint
ne doit jamais être passé comme un pointeur, c'est à direint *
. J'espère que ça aideOriginalL'auteur justin
Vous pouvez faire cela avec interface builder dans XCode 4. J'ai fait une courte vidéo sur la façon de le faire:
http://www.youtube.com/watch?v=6VOQMBoyqbA
OriginalL'auteur zorro2b