2012-04-02 17 views
0

Ich habe einen UINavigationController drin Ich habe einen UIViewController, der eine ScrollView behandelt, nur um addSubview zu verwenden: und ich lade mehrere UIViewController in die ScrollView.pushViewController: animiert: innerhalb von ScrollView

Ich habe eine Schaltfläche auf pushViewController: animiert: aber es tut nichts. Ich habe self.parentViewController und self.presentedViewController verwendet, lief aber auf dasselbe Problem.

Antwort

1

Diese Antwort basiert auf dem Titel dieser Frage. Die Frage ist jedoch wirklich keine Frage.

UIViewController müssen von einem UINavigationController geschoben werden. Sie können eine UIScrollView nicht verwenden, um eine Ansicht zu verschieben. Sie können UIViews mithilfe von Animationen innerhalb von UIScrollView verschieben.

+0

Nun, ich weiß das, aber ich muss einen neuen ViewController auf den UINavigationController Stack schieben. Ich muss auf den NavigationController zugreifen und er reagiert nicht auf self.navigationController oder self.parentViewController.navigationController ... – btype

+0

Ihre Ansicht, dass die Eltern die UIScrollView darf dann kein UINavigationController sein. – WrightsCS

0

Ich habe dein Problem. Was Sie tun sollten, ist, Schaltflächen- oder andere View-Controller dynamisch zu erstellen und sie zu UIView hinzuzufügen und dann diese UIView zu scrollView hinzuzufügen. Sie sollten IBaction zur Laufzeit zu jeder Schaltfläche hinzufügen und danach wird Ihr Navigationscontroller funktionieren.

0

Wenn Ihr UIViewController ist Kind von Navigationssteuerung dann

[self.navigationController pushViewController:aViewController animated:YES]

wird ein Push ein Viewcontroller über das jetzige. Das ist es !.

1

Vielleicht self.navigationController oder self.parentViewController.navigationController treibt nil.

Initiieren einen UINavigationController:

UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:aViewController]; 
[self.navigationController pushViewController:nav animated:YES]; 
[nav release]; 

bereits. Hoffe, das wird helfen.

Verwandte Themen