2012-02-17 13 views
1

ナビゲーションコントローラ経由でコントローラを切り替える。私のアプリが最初にAppointment画面を読み込むと、scrollsToTopはうまくいきます。コントローラーを顧客に切り替えると、iOS:ビューを切り替えるときにscrollsToTopが機能しない

CustomerViewController *customers = [self.storyboard instantiateViewControllerWithIdentifier:@"CustomerViewController"]; 
[self.navController.view removeFromSuperview]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:customers]; 
self.navController.view.frame = self.contentView.bounds; 
[self.contentView addSubview:self.navController.view]; 

が動作しなくなります。その後、私のAppointmentsコントローラに戻って

AppointmentViewController *appointments = [self.storyboard instantiateViewControllerWithIdentifier:@"AppointmentViewController"]; 
[self.navController.view removeFromSuperview]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:appointments]; 
self.navController.view.frame = self.contentView.bounds; 
[self.contentView addSubview:self.navController.view]; 

を入力し、ステータスバーをクリックすると、アポイントがもう上にスクロールしなくなります。私はscrollsToTopYESに設定しているので、すべてのコントローラがロードされるので、スクロールする必要があります。私がコントローラを切り替えてスイッチバックしたときにこれがなぜ機能しなくなるのか誰にも分かりますか?

EDIT:

私は私のRootViewControllerを持って右側面図である私のサイドメニュー(青いメニュー)で、私のAppointmentViewControllerView Controller

上記のコードは、どのビューを上に配置するかを決定するRootViewControllerにあります。

+0

あなたのストーリーボードにナビゲーションコントローラが設定されていないのはなぜですか?なぜそれらをコードで作成していますか? –

+0

@robmayoff huh?彼らはストーリーボードに入っています。私はFacebookのスタイルのスライドメニューを作成しました。 – Bot

+0

あなたが投稿したコードには、 '[[UINavigationController alloc] initWithRootViewController:...]'と書かれています。それはどういうことだと思いますか? –

答えて

1

あなたはcontentViewから古いself.navControllerを削除しません。

+0

どういう意味ですか? – Bot

+0

'[self.contentView addSubview:self.navController.view];でサブビューを追加し続けますが、' [self.navController.view removeFromSuperview];を呼び出すことはありません( 'self.navController'を再割り当てする前に行うべきです。 )。 – jrtc27

+0

良い点:)私はそれを追加します。 – Bot

関連する問題