2009-09-05 6 views
0

Dans ma méthode viewDidLoad de UIViewController I par exemple une instance UIImageView appelée étape:Ajouter un UIImageView comme sous-vue d'un UIViewController sans utiliser IB

stage = [Stage viewWithParent:self]; 

et qui appelle ceci:

- (id)initWithParent:(UIView *)parent { 
    self = [self initWithFrame:CGRectZero]; 

    if (!self) 
     return nil; 

    [parent addSubview:self]; 

    return self; 
} 


+ (id) viewWithParent:(UIView *)parent { 
    return [[[self alloc] initWithParent:parent] autorelease]; 
} 

Avant, je appeler cela à partir d'un UIImageView et tout a bien fonctionné. Les images étaient visibles, les événements tactiles étaient activés et répondaient. À partir du UIViewController, je reçois une fenêtre, mais rien ne s'affiche et aucune touche n'est enregistrée. Qu'est-ce que je rate?

Toute aide appréciée!

Merci // :)

+0

voir cette ------ http://stackoverflow.com/questions/3321374/cocoa-touch-adding-a-uiimageview-programmatically –

Répondre

1
stage = [Stage viewWithParent:self.view]; 

devrait fonctionner.

Est-ce que Xcode ne vous avertit pas à ce sujet?

+0

Pas d'avertissement, construction propre avec l'analyseur statique activé aussi. Mon code lit exactement ce que vous avez là, mais toujours pas de joie. L'application se charge, tourne bien vers la droite comme prévu, et me montre un écran blanc plutôt que ma sous-vue UIImageView vraiment groovy ...? – Spanky

+0

vous devriez toujours changer self à self.view que vous voulez que la sous-vue soit ajoutée à la vue du viewcontroller pas le viewcontroller. Si je change pour [viewController addSubview: newView]; dans mon projet, puis Xcode me donne: /Users/mz/Dev/Working/BlurApp/Classes/BlurAppAppDelegate.m:22: avertissement: 'BlurAppViewController' peut ne pas répondre à '-addSubview:' Puisque vous n'êtes pas en le voyant, peut-être que votre viewcontroller est défini comme un UIView *? – mahboudz

1

Les contrôleurs de vue ne sont pas des vues; ce sont des contrôleurs qui contrôlent (possèdent et gèrent) les vues. Essayez de passer la vue du contrôleur de vue en tant que parent souhaité.

+0

il Pas de joie, ne fonctionnait pas. Merci quand même. – Spanky

Questions connexes