Communication entre deux classes distinctes : ViewController et SystemController
Bonsoir ,
Je viens poster ici car je me mêle un peu les pinceaux.
Petite description :
Je disposais d'un petit jeu de mot secret, composé d'un view controller principal avec tous les objects dans le storyboard ( UITextField , UITextView .. ) , et d'une seule classe MainViewController qui elle seule faisait marcher l'appli
Maintenant , j'ai pensé faire deux classes au lieu d'une :
Une classe MyInterfaceController et SystemController .
MyInterface qui contiendrait seulement les déclarations des instances , et les actions ( bouton cliqué , UITextView maVariable .. )
Et puis SystemController qui s'occupe de gérer le fond , c'est à dire qui s'occupe d'écrire dans le TextView , etc .. MyInterface ne ferait qu'utiliser les méthodes du SystemController.
Sauf que niveau organisation, c'est pas top top ..
J'ai un truc du genre :
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
| MyInterface.h
#import <UIKit/UIKit.h>
@class ControlSystemView;
@interface MainViewController : UIViewController
{
@private
__weak UITextField *machin1;
UITextView *machin2;
int truc1;
}
@property (weak,nonatomic) IBOutlet UITextField *machin1;
@property (strong,nonatomic) IBOutlet UITextView *machin2;
@property (nonatomic,assign) int truc1;
/* Le bouton pour changer un nombre */
- (IBAction)change...:(id)sender;
- (IBAction)end...:(id)sender;/* en rapport avec la fin de saisie dans un textField*/
- (IBAction)see..:(id)sender;/* en rapport avec des boutons*/
- (IBAction)send..:(id)sender;
@end |
Ce que je voudrais faire , ce serait que cette classe n'appelle que les méthodes de la classe Control qui elle modifiera les attributs/instances de la classe MyInterface , sauf que je n'arrive pas à implémenter ce fonctionnement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ControlSystem.h
#import <Foundation/Foundation.h>
@class MainViewController;
@interface ControlSystemView : NSObject < UITextFieldDelegate, UITextViewDelegate >
{
MainViewController *instanceOfMainViewController;
}
-(void) resetCounter:(int) _counter;
-(void) clearResults:(UITextView*) _resultsTextView;
..
@end |
Ou dois-je mettre les delegates , créer l'instance , comment implémenter la méthode pour que cela modifie la variable de la classe MyInstance ..
J'espère que quelqu'un saura m'éclairer !
Merci d'avance
Edit :
Je viens de trouver cela :
Code:
1 2 3 4
| @protocol UITextInputDelegate <NSObject>
- (void)selectionDidChange:(id <UITextInput>)textInput;
- (void)textWillChange:(id <UITextInput>)textInput;
-(void) selectionWillChance:(id<UITextInput>)textInput; |
Suis-je sur la bonne voie ?