更新:この問題の別の解決策は、ナビゲーションコントローラーのルートレベルにあるナビゲーションバーが透明であるか、表示されない場合です。ナビゲーションコントローラーのルートレベルにあるナビゲーションバーを透明にする方法や表示しない方法はありますか?
トップレベルのUIViewの上部にツールバーがあり、ツールバーの下にtableViewがあるNIBがあります。NavigationControllerでpushViewControllerを使用して別のUIViewControllerをnavigationControllerにプッシュすると、ツールバーがナビゲーションバーによって上書きされます。現在のビューをルートビューに戻すと、上部に空白のバーがあるため、ツールバーが表示されません。ツールバーとtableViewの上部の間にも、ツールバーのサイズについてのギャップがあります。したがって、ビューは上から見ると次のようになります。1)影付きの空白のバー、2)ツールバーとほぼ同じサイズの空白、3)テーブルビュー
popViewControllerを使用した後、トップレベルのNIBのツールバーをUIViewの上部に表示するにはどうすればよいですか?
トップレベルビューで、UINavigationControllerをインスタンス化します。
self.navigationController = [[UINavigationController alloc] initWithRootViewController:ListsController];
次に、didSelectRowAtIndexPathでビューコントローラをプッシュします
ItemsController * Items = [[ItemsController alloc]
initWithNibName:@"Items" bundle:nil] ;
[self.navigationController pushViewController:Items animated:YES];
最初にプッシュされたビューを表示するには、次のようにします。
UIView *navView = self.navigationController.view;
CGRect navFrame = navView.frame;
// navFrame.origin.y -= 20;
navView.frame = navFrame;
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
UIWindow *appWindow = appDelegate.window;
[appWindow addSubview:navView];
トップレベルに戻ったときにトップレベルのツールバーが上書きされないようにするにはどうすればよいですか?