2009-05-25 7 views
0

私のアプリケーションの主な機能は、UITabBarControllerによって制御されます。しかし、私は、UINavigationControllerを持つビューをロードする必要があります。私はUITabBarControllerとUINavigationControllerの切り替え

 self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; 

私のUITabBarControllerを使用して、私のUITabBarControllerに戻ると、もはやクリックに応答しません。ビューにフォーカスがないようです。しかし

、私は戻ってUITabBarControllerに切り替えるには、このコードを使用している場合:

[window addSubview:tabBarController.view] 

マイボタン対応させていただきます。私は "addSubview"のように私は決してウィンドウからビューを削除し、それはスタックのビューの2番目のコピーを追加する必要がありますので、効率的ではないと思う。私は正しいですか?最初のメソッドを使用してボタンを応答させる方法はありますか?私にお知らせください。

答えて

1

Navコントローラを間違って表示しているようです。間違いなくウィンドウに直接ビューを追加するべきではありません。あなたは、あなたがあなたが

[myTabBarController dismissModalViewControllerAnimated:YES]; 

でそれを却下し、すべてが動作するはずのナビゲーションコントローラを完了したら

[myTabBarController presentModalViewController:myNavController animated:YES]; 

を使用してそれを提示したいと思います。

これは、すべてUIViewControllerと「View Controller Programming Guide for iPhone OS」ドキュメントのドキュメントに記載されています。

+0

n8gray ...あなたはちょうど私の人生を救った。完璧。私はnavコントローラを間違って開くだけでした。ほんとうにありがとう。この行のダッシュを削除するには、投稿を編集することができます:[myTabBarController - dismissModalViewControllerAnimated:YES]; – Dave

+0

おっと!はい、もちろんそうです。編集されました。お力になれて、嬉しいです! – n8gray

+0

メイヤーあなたが私を助けることができます...毎回私は '-dismissModalViewControllerAnimated:'しようとすると、このエラーが発生します: 'UIViewControllerHierarchyInconsistency'、理由:コントローラのpresentViewController自体が終了しています: