2011-08-11 14 views
0

私は最初のiPhoneアプリケーションを作成していますが、例のようにMasterViewとDetailsViewを作成する方法を理解しようとしています。しかし、TableViewを使用する代わりに、MasterViewのボタンを使用してSignUpViewに行きたいと思っています。 MasterViewにナビゲーションバーがありませんが、SignUpViewにはナビゲーションバーが必要です。ナビゲーションコントローラーを使用しているときにビューとしての黒いバーが表示される

インタフェースビルダーを使用してNavigationControllerをMasterViewに配置しようとしました。これはまったく何もしていないようです...私は。私は次の電話をします:

[self.navigationController pushViewController:signUpViewController animated:YES]; 

何も起こりません。 SignUpViewは表示されません。

それで、私はAppDelegateでNavigationControllerを宣言しました。以前のボタンと同じ機能(ボタンハンドラ、ボタンはMasterViewにあります)で上記の呼び出しが今機能します!私はSignUpViewControllerに連れて行く。

ただし、サインアップビューのナビゲーションバーを押すと、ナビゲーションバーがMasterViewに再度表示されるという問題があります。私は、のviewDidLoadとviewDidAppearで

self.navigationController.navigationBarHidden = YES; 

を設定しようとしましたが、それは黒いバーがSignUpViewからMasterViewへの移行に表示されるようになります。

2つのうちの一方に設定しようとしましたが、アニメーションがスムーズに進みますが、ナビゲーションバーがMasterViewに表示されます。

私はこれがかなり簡単であるべきだと感じます...しかし、私はこれを理解しようとしています。いくつかの助けは本当に感謝されるでしょう!

ありがとうございました。

答えて

2

おそらくあなたの質問への答えではなく、ちょっとした提案です。私が遭遇した多くのアプリでは、サインアップ/サインインビューは一般にモーダルビュー(マスタービューの上に表示)として表示され、右上隅には「クロス」が表示されます。おそらくそれはより良いユーザー体験をもたらします。

また、self.navigationController.navigationBarHidden = YESを試しましたか? MasterViewのviewWillAppearにありますか?

HTH、

Akshay

+0

をモーダルビューコントローラは確かにユーザに画面サインアップを提示するためのより良い方法で非表示にする

。それがあなたのアプリでUINavigationControllerの唯一の使用であれば、それを完全に削除してプログラミングを容易にすることができます。簡単! –

1

私はsetNavigationBarHiddenを発見するまで、私は、あまりにもこの問題を抱えていました。おそらく、これらをviewWillAppear/viewWillDisappearまたはviewDidAppear/viewDidDisAppearで使用することになります。 viewDidLoadでこれを呼びたくないのは、そのビューが表示されるたびにではなく、ビューが初期化されたときに一度だけ呼び出されるからです。

[self.navigationController setNavigationBarHidden:YES animated:YES];

を表示する:

[self.navigationController setNavigationBarHidden:NO animated:YES];

関連する問題