2016-06-21 26 views
0

Ich habe Haupt UIViewController in denen ich eine UITableView habe.So rufen Sie einen UIViewController von einer UIView SubClass auf?

In der Zelle UItableView hatte ich bereits eine UICollectionView hinzufügen.

in -

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

ich eine Methode der Haupt UIViewController nenne.

in der Hauptansicht.

-(void)my_method { 
    AnotherName *view_my=[[AnotherName alloc]initWithNibName:@"AnotherName" bundle:nil]; 
     [self.navigationController pushViewController:view_my animated:NO]; 
} 

Viewdidload Methode ruft aber view zeigt nicht.

+0

lesen Sie über Hinzufügen von ChildViewControllers. Sie müssen hier objektorientierte Konzepte verstehen. eine neue Instanz der Ansicht zu machen wird nicht die aktuelle Hierarchie beeinflussen – Shubhank

+0

sehen Sie Ihre View_my-Methode Code? –

+0

Wenn Sie ein Objekt in der Sammlungsansicht auswählen, können Sie angeben, was die App dann ausführen soll. So kann ich dir zeigen, wie es gemacht wird. Denn wie auch immer du es tust, es scheint nicht klar zu sein, was du gepostet hast. – pnizzle

Antwort

0

i Lösung bekam ..

AnotherName *view_my = [[AnotherName alloc]initWithNibName:@"AnotherName" bundle:nil]; 
self.window.rootViewController = view_my; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 

Spacial dank @The Mech System .. helfen mir die Lösung finden .. jetzt ist es funktioniert gut.

+0

Ich bin froh, dass es hilft. Könnten Sie bitte meine Antwort akzeptieren, wenn es Ihnen geholfen hat. Vielen Dank. –

1

Es ist, weil Sie initialisieren, indem Sie [[UIViewController alloc] init] aufrufen. Dies gibt immer eine leere Ansicht zurück.

Sie sollten stattdessen nennen diese

  • Wenn Sie Storyboard View-Controller ein Storyboard-ID geben verwenden und rufen diese

MainViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"storyboard id"];

  • Wenn Sie Interface Builder verwenden, dies nennen

MainViewController *controller = [[MainViewController alloc] initWithNibName:@"Nib File Name" bundle:nil];

+0

ich versuche dies, aber es ist nicht navigiert zu sehen. Ich setze Haltepunkte, viewdidload Methode wird aufgerufen, aber Ansicht wird nicht angezeigt. –

+0

Warum würden Sie es UIViewController nennen? Sie können es nicht UIViewController nennen, da es den Apple Standard-UIViewController und nicht Ihren benutzerdefinierten UIViewController aufruft. –

+0

Ich möchte einen anderen View-Controller aus einer uiview-Klasse aufrufen. –

Verwandte Themen