2010-11-21 6 views
0

J'écris un programme qui a 2 fichiers .h et 2 .m, il devrait passer la valeur d'un PageControl de l'un à l'autre. Mais je me passe juste 0. Je ne sais pas comment faire cela, afin que je puisse lire la valeur correcte?Passage de valeur à un autre fichier .m

Voici l'exemple de code som:

// SubViewViewController.h 
#import <UIKit/UIKit.h> 
@class ExSubViewViewController; 

@interface SubViewViewController : UIViewController <UIScrollViewDelegate> { 
    ..... 
IBOutlet UIScrollView *scrollView; 
IBOutlet UIPageControl *pageControl; 
ExSubViewViewController *exSubViewViewController; 
} 

@property (nonatomic, retain) ExSubViewViewController *exSubViewViewController; 
@property (nonatomic, retain) UIScrollView *scrollView; 
@property (nonatomic, retain) UIPageControl *pageControl; 
..... 
@end 

// SubViewViewController.m 

#import "ExSubViewViewController.h" 
#import "SubViewViewController.h" 

@implementation SubViewViewController; 

@synthesize scrollView, pageControl, exSubViewViewController; 
..... 
pageControl.currentPage = page; //page is an integer 
..... 
@end 

// ExSubViewViewController.h 

#import <UIKit/UIKit.h> 
@class SubViewViewController; 

@interface ExSubViewViewController : UIViewController { 
SubViewViewController *subViewViewController; 
} 

@property (nonatomic, retain) SubViewViewController *subViewViewController; 

@end 


// ExSubViewViewController.m 

#import "ExSubViewViewController.h" 
#import "SubViewViewController.h" 

@implementation ExSubViewViewController; 

@synthesize subViewViewController; 
- (void)viewDidLoad { 
    int page = subViewViewController.pageControl.currentPage; 

NSLog(@"Side: %d", page); 
} 
..... 
@end 

Espoir ce code est assez ou bien vous pouvez simplement demander à nouveau. J'ai laissé de côté le code sans importance. Merci pour l'aide.

+0

montrez-nous le code –

Répondre

0

Où avez-vous défini subViewViewController dans votre code de démarrage ExSubViewViewController? Et êtes-vous sûr qu'il est déjà initialisé au moment où vous l'utilisez?

Modifier: le pointeur SubViewController (nommé subViewViewController) qui est membre de ExSubViewController doit être initialisé. Cette variable de pointeur n'est pas magiquement définie à la bonne valeur sauf si vous le faites, ou vous en faites un IBOutlet et le connectez de manière appropriée dans Interface Builder.

Édition 2: Les membres de la classe sont nil-initialisés, rien de plus. Et oui, vous pouvez en faire un IBOutlet et le connecter de manière appropriée dans Interface Builder.

+0

Que voulez-vous dire par définir subViewViewController? J'ai la classe dans le .h et je l'importe dans le .m – Bagger

+0

Ok, comprenez. Mais n'est-il pas initialisé quand je le synthétise? Corrigez-moi si je me trompe, je suis nouveau à la programmation iPhone. Le pointeur doit-il être connecté dans IB à la commande pageControl dans le fichier subView.xib? Merci pour l'aide. – Bagger

+0

Ok, je comprends que les membres de la classe n'ont aucune information en eux. Comment puis-je maintenant passer la valeur de SubViewViewController à l'intérieur? Il devrait être dit que ceux-ci sont à vue différente, donc je ne pouvais pas établir une connexion dans Interface Builder ?! ou est-ce juste moi? La ligne qui dit: SubViewViewController * subViewViewController, devrait-il être IBOutlet SubViewViewController * subViewViewController? – Bagger

Questions connexes