1

タブバーコントローラーアプリがあります。タブバーコントローラーはいくつかの「タブ」ビューコントローラーに分岐しています。ビューコントローラーの1つで、ユーザーを別のビューコントローラーにリダイレクトします。そのタブビューコントローラーから宛先ビューコントローラーへのセグエを作成し、それにIDを指定します。そして、「viewDidAppear」で「performSegueWithIdentifier」を呼び出して、ユーザーをリダイレクトします。

セグエが「モーダル」の場合は問題なく動作しますが、タブを保持したいので、「プッシュ」でセグエを呼び出します。ただし、セグエを「プッシュ」に変更すると、機能しなくなります(宛先のビューコントローラーに移動しようとしません)。アプリはシミュレーターでクラッシュしませんでしたが、原点タブビューコントローラーに留まりました。

4

1 に答える 1

10

「プッシュ」は、UINavigationコントローラーをルートとするUIViewControllerスタックのメカニズムです。

タブのビューコントローラーがナビゲーションコントローラーでない限り、プッシュを実行することはできません。

例として

TabBar VC 

...Tab 1 -> UIViewController
...Tab 2 -> UIVIewController
...Tab 3 -> UINavigationController -> UIViewController(root)

タブ3のみがプッシュセグエを実行できました。

于 2012-05-28T10:57:44.223 に答える