2012-03-14 6 views
5

私は、いくつかのビューコントローラがタブバーコントローラから制御されたアプリケーションを持っています。これらのView Controllerの1つから、別のView Controllerに(ボタンをクリックして)Segueして、Seguedの下部にタブバーを保持したいとします。私はタブバーのコントローラー内で、あるビューコントローラーから別のビューコントローラーに移動してタブバーを保持する方法を教えてください。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if ([segue.identifier isEqualToString:@"newView"]){ 
     UIViewController *controller =segue.destinationViewController; 
     controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

これは、タブバーから欠けている以外うまく動作を使用しました

(プレースホルダは、ストーリーボードでそれを示しているが、アプリがあるとき、それは表示されません表示するsegued私もして

[self presentModalViewController:controller animated:YES]; 

を交換しようとした )を実行

[self presentViewController:controller animated:YES completion:nil]; 

しかしそれはどちらもうまくいきません。

デバッグのビットは、segued-to viewコントローラの場合、tabBarControllerプロパティがnilに設定されていることを示しています。

segued-to viewコントローラにタブバーを保持する方法はありますか?

答えて

1

あなたの説明から、私はあなたがモーダルコントローラーを望んでいないと思います。モーダルはオーバーレイに使用され、タブバーは役に立たなくなります。あなたのストーリーボードから、あなたのセグを選択し、モーダルではなくプッシュを選択します。モーダル対

enter image description here

プッシュ(タブバーに注意してください):私はしませんモーダルを押し

enter image description here enter image description here

+0

を使用しています。タブバーはストーリーボードに表示されますが、アプリケーションの実行時に実際には表示されません – John

+0

コードからセグを開始するには、 'UIViewController'のメソッドである' [self performSegueWithIdentifier:@ "theSegueIdentifier" sender:selfOrSomeObject] 'を使用します。この行 'controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizo​​ntal; [self presentModalViewController:controller animated:YES]; 'はモーダル**の遷移に使用され、プッシュしません。この行を削除します。 – Gobot

+1

また、Appleのdocs for presentModalViewController:animated ... "iPhoneとiPod touchのデバイスでは、modalViewControllerのビューは常にフルスクリーンで表示されますが、iPadではmodalPresentationStyleプロパティの値によって異なります。 – Gobot

関連する問題