2016-07-14 12 views
-1

Ich habe eine Liste benutzerdefinierte viewControllerWie benutzerdefinierte Klasse werfen Uiviewcontroller

NSMutableArray *arrOfCtrls = [[NSMutableArray alloc] init]; 
AViewController *aCtrl = [[AViewController alloc] init]; 
BViewController *bCtrl = [[BViewController alloc] init]; 
CViewController *cCtrl = [[CViewController alloc] init]; 
DViewController *dCtrl = [[DViewController alloc] init]; 
[arrOfCtrls addObject: aCtrl]; 
[arrOfCtrls addObject: bCtrl]; 
[arrOfCtrls addObject: cCtrl]; 
[arrOfCtrls addObject: dCtrl]; 

Und dann möchte ich UIViewController in Liste arrOfCtrls

UIViewController *vCtrl = arrOfCtrls[0]; 

Wie kommt man werfen vctrl ist AViewController? Ich möchte Eigenschaften erhalten in vctrl, Beispiel möchte ich aProperties in AViewController

vCtrl.aProperties 

Dank erhalten!

+1

'AViewController * VCTR überprüfen werfen = (AViewController *) arrOfCtrls [0]; ' – Paulw11

+0

benutzen' ((AViewController *) arrOfCtrls [0]) '? – Tj3n

+0

Ich weiß nicht, vCtr ist AViewController. Wie man vCtr rekonfiguriert ist AViewController – Takashi

Antwort

2

Wenn Sie wissen, dass erste Objekttyp von AViewController ist dann direkt Sie Guss mit diesen

AViewController *aVC = (AViewController*)arrOfCtrls[0]; 

Wenn Sie nicht wissen, und wollen wie diese

AViewController *aVC; 
if ([arrOfCtrls[0] isKindOfClass:[AViewController class]]) { 
    aVC = arrOfCtrls[0]; 
} 
+2

Sie brauchen die Besetzung überhaupt nicht, da 'arrOfCtrls [0]' vom Typ 'id' ist. – rmaddy

+0

Ja, Sie haben Recht, hat den Code bearbeitet. –

+0

Ich möchte nicht, wenn sonst. Ich möchte UIViewController zu AViewController – Takashi