Je fais une application uniquement dans le but d'apprendre plus objectif c. Cette application amène fondamentalement un utilisateur à une vue modale et donne ensuite à l'utilisateur les options (uibuttons) à cliquer. Lorsqu'un utilisateur appuie sur un bouton, la vue modale est ignorée et je souhaite prendre les données provenant de ce bouton (qu'il s'agisse du titre du bouton, de la balise, etc., selon la méthode la plus facile à utiliser) et la stocker comme variable. ma vue principale. J'ai essayé d'utiliser un NSString externe défini dans un fichier .h séparé, mais pas de chance. Qu'est-ce que je rate?Passer des données de vue pour voir?
Répondre
Vous devez passer par le modèle de délégué dans iOS.
Vous pouvez renvoyer la valeur à la vue principale à l'aide de méthodes de délégation.
Apple documentation sur les protocoles.
vous devez utiliser les méthodes de délégués pour passer la valeur voir documentation Apple
délégations d'utilisation. faire un protocole.
@protocol SelectValueDelegate <NSObject>
@optional
- (void) selectedValue:(NSString *)values selectionViewController:(UIViewController *)controller;
- (void)selectionCanceled:(UIViewController *)controller;
@end
mettre en œuvre dans votre MainViewController.h
@interface MainViewController : UIViewController<SelectValueDelegate> {
//....
}
et le fichier .m
ressemble à ceci:
- (void) selectedValue:(NSString *)values selectionViewController:(UIViewController *)controller
{
//here you have value.
[controller dissmissModalViewControllerAnimated:YES];
}
- (void)selectionCanceled:(UIViewController *)controller
{
[controller dissmissModalViewControllerAnimated:YES];
}
et vous ModalViewController
faire une propriété de délégué comme celui-ci:
@interface ModalViewController : UIViewController
id<SelectValueDelegate> delegate;
}
@property(assign)id delegate; // synthesize it also
maintenant clic de bouton faire quelque chose comme ceci:
-(IBAction)buttonClicked:(id)sender
{
[delegate selectedValue:@"Value" selectionViewController:self];
}
et en le présentant de façon modale à l'intérieur MainViewController
, faire quelque chose comme ceci:
ModalViewController *screen = [[ModalViewController alloc] initWithBlahblah];
screen.delegate = self;
[self.navigationController presentModalViewControllerAnimated:YES];
Je vais essayer - Il semble simple et utile. Je vous remercie! – Radrider33
Vous pouvez stocker les données dans un objet dans le appDelegate qui est le fichier délégué pour les applications,
Vous pouvez déclarer un objet dans appDelegate:
NSString *buttonName;
Puis propertise et synthétise cet objet.
Après avoir fait cela, mettre un code dans le contrôleur vue que vous ouvrez une Modal VIew:
appDelegate.buttonName = yourbutton.titleLabel.text;
Maintenant, même après avoir rejeté le point de vue modal, vous allez avoir le titre du bouton stocké dans la l'objet de appldelegate, et vous pouvez y accéder à partir de n'importe où dans votre application.
Supposons que vous avez deux viewcontrollers dire A & B
Votre A.h
{
NSString *strData;
int cId;
}
@property (nonatomic, retain) NSString *strData;
@property (readwrite) int cId;
Dans votre a.m
@synthesize strData,cId;
Votre B.h
@class A
{
A *aObj;
}
Dans votre B.m
#import "A.h"
- (void) viewDidLoad
{
aObj=[A alloc] init]; //alloc object of A
[aObj setCId:10]; //set value for cId
[aObj setStrData:@"Hello from B"]; //set value for strData
//do what ever
[aObj release]; //don't forget
}
- 1. Passer des données pour voir Maître Pages
- 2. Passer des données SQL à partir d'une annotation cliquer pour voir une nouvelle vue
- 3. Passer les données de la vue au contrôleur et au contrôleur pour voir
- 4. Mise au point - passer des données du contrôleur à Voir
- 5. Grille Voir le bouton Passer des données via le clic
- 6. passer plus de données de vue android
- 7. Comment passer des données d'entrée de la vue au contrôleur
- 8. Passer des données de la vue à l'action? Solution?
- 9. Passer d'une vue à l'autre et voir le modèle
- 10. transférer des données de la vue au contrôleur et de retour pour voir
- 11. Ajouter une vue de table comme sous-vue pour voir?
- 12. Passer une variable du contrôleur pour voir
- 13. Passer des données d'une sous-vue à une vue parente avec des protocoles et des délégués
- 14. comment passer des données de la vue de table en coupe à la vue de détail?
- 15. Comment passer des données entre vue à un autre viewmodel?
- 16. Passer des données d'une activité à sa vue
- 17. Passer le dictionnaire de couleurs pour voir MVC
- 18. EF: la sauvegarde des données pour voir dans DB
- 19. envoyer des données du contrôleur pour voir le codeigniter
- 20. Objectif-C: Comment envoyer un signal de la vue pour voir le contrôleur changer de vue?
- 21. Passer des données de childView faire parentView!
- 22. Durandal: passer le paramètre pour voir la demande url
- 23. Picker voir sous-vue
- 24. Impossible de transmettre un objet de données pour voir le contrôleur dans un contrôleur de vue
- 25. Récupération des données Tree Voir
- 26. django passer option supplémentaire par url templatetag pour voir
- 27. Passer des objets non statiques entre les contrôleurs de vue
- 28. Passer des variables entre les vues/voir les contrôleurs
- 29. Passer des données de Usercontrol au contrôleur
- 30. Changement de l'animation de la vue pour voir
S'il vous plaît mettre votre code afin que nous puissions vous aider .. – nithin