2013-07-11 2 views
0

!!! Oui, c'est une question de noob, mais oui. J'ai donc créé un contrôleur de navigation dans le fichier 1, qui contient une vue de table. Les cellules de cette vue tabulaire sont des cellules personnalisées, ayant une classe différente et xib (fichier2). Sur le fichier xib, j'ai un bouton, qui, lorsqu'on clique dessus, devrait pousser une vue dans le contrôleur de navigation.Accéder à UINavigationController à partir d'un autre fichier

Maintenant, je ne sais pas comment faire référence, depuis le fichier 2, au contrôleur de navigation créé dans le fichier 1. Edit: Correction de ce problème en configurant le contrôleur de navigation dans AppDelegate et en créant un délégué partagé, mais que se passe-t-il si je devais configurer le contrôleur de navigation dans le fichier 1?

Répondre

0

Dans ce cas je préférerais avoir un delegate dans fichier2.

Le fichier .h pourrait ressembler quelque chose comme ceci

#import <Foundation/Foundation.h> 

@protocol CustomCellDelegate <NSObject> 
- (void)buttonClicked; 
@end 

@interface CustomCell : UITableViewCell 

@property (nonatomic, weak) id<CustomCellDelegate> delegate; 

- (void)getImageWithCompletionHandler:(handler)completionBlock; 

@end 

puis lors de la création de l'objet CustomCell dans le fichier1 u besoin de régler la delegate comme self.

CustomCell *customCell = … 
…. 
customCell.delegate = self; 

Mettre en oeuvre le CustomCellDelegate dans fichier1

- (void)buttonClicked 
{ 
    // TODO: push using navigation controller code. 
} 

Ce qui précède est le modèle de délégation . Pour en savoir plus sur les delegates vérifier le tutoriel here

Selon MVC (contrôleur de vue du modèle) travail de modèle vue est d'afficher uniquement les données et son travail de contrôleur pour pousser ou présenter l'autre contrôleur.

Espérons que cela aide!

Questions connexes