12

iOS 7 では、ナビゲーション バーとビューの間にグレーのセパレーターがあります。

iOS 6 に戻ると、その水平線がなかったので、ビューは同じ画像であるかのようにナビゲーション バーと溶け合っていました。いまいち消し方がわからない…

ビュー/ナビゲーション バーのサイズを変更しようとしましたが、解決しません。何か案は?

4

3 に答える 3

20

これを追加:

[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

アプリケーションのdidFinishLaunchingWithOptionsメソッドのAppDelegate.mで

于 2013-09-20T16:08:16.680 に答える
5

試してみてください

self.navigationController.navigationBar.translucent = NO;

あなたのviewDidLoad方法で、私に知らせてください:)

すべての ViewController でこの効果が必要な場合は、次のように簡単に実行できます。

[[UINavigationBar appearance] setTranslucent:NO]

または、ナビゲーション コントローラーを最初にインスタンス化する場所でこれを行う必要があります。たとえば、ナビゲーション コントローラーがアプリのルート ビュー コントローラーである場合は、次のように簡単に実行できます。

UINavigationController *nav = (UINavigationController *)self.window.rootViewController;
nav.navigationBar.translucent = NO;

あなたの

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

反対に、セグエを介してインスタンス化する場合(適切なView Controllerで)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   if([segue.identifier isEqualToString:@"navController"]){     
       UINavigationController *nav = (UINavigationController *)segue.destinationViewController;
       nav.navigationBar.translucent = NO;
   }
}

など(実際にコードからインスタンス化する場合は、これが最も簡単なオプションです)。

于 2013-09-20T16:07:57.730 に答える