このシーンのアプリがあります:
UIViewController:
- UISearchBar
- UITableView
これが構造です。UIViewController の内部では、searchBar をシーンの上部に配置して (常に上部に) 固定できるように、両方のコンポーネントが分離されています。画面の高さを超えるのに十分
スクリーンショット (iOS6):
問題は... xCode を最新バージョン (xCode 5) に更新したところです。UINavigationBar は半透明であるため、searchBar が NavigationController に重なっています。
スクリーンショット (iOS7):
事は...両方のバージョン(iOS6X、iOS7)で互換性のある画面が欲しいです
それ、どうやったら出来るの???
助けてくれてありがとう
編集する必要があったのは、UINavigationBar の半透明プロパティを False に切り替えることだけです。これが私の方法です。
-(void)showSplitViewControllerInView:(UIView *)view
withDetailViewController:(id)rightViewController{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPad" bundle: nil];
UINavigationController *leftNavController;
UINavigationController *rightNavController;
MainMenuVC *leftViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuVC"];
leftNavController = [[UINavigationController alloc] initWithRootViewController:leftViewController];
rightNavController = [[UINavigationController alloc] initWithRootViewController:rightViewController];
leftNavController.toolbarHidden = FALSE;
rightNavController.toolbarHidden = FALSE;
leftNavController.navigationBar.translucent = FALSE;
rightNavController.navigationBar.translucent = FALSE;
leftNavController.toolbar.translucent = FALSE;
rightNavController.toolbar.translucent = FALSE;
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];
splitViewController.delegate = rightViewController;
view.window.rootViewController = splitViewController;
}
キーはここにあります:
leftNavController.navigationBar.translucent = FALSE;
rightNavController.navigationBar.translucent = FALSE;
最終結果: