2016-09-30 4 views
1

色合いは白です。私たちのアプリはCNContactViewControllerを使います。 iOS 8と9をターゲットにしたXcode 7で構築されたストア内のこのアプリのバージョンでは、iOS 9の場合はCNContactViewControllerを呼び出しました。戻るボタンは白ですが、背景には灰色のナビゲーションバーがあります。 iOS 9と10をターゲットにしたXcode 8を使用した開発ビルドでは、灰色のバーがないので、戻るボタンは白の上に白く表示され、影が見えにくくなります。CNContactViewControllerバージョン間で異なるナビゲーションバー

CNContactViewControllerのナビゲーション領域が変更されたXcodeバージョン/ SDKのバージョン間で変更を経験したことがありますか?このバーに影響を与えるアプリの変更がいくつかありますか?

編集:ここは最新のビルドのイメージです。私はいくつかの個人情報を削除しましたので、それは真ん中のボックスですが、左上に戻るボタンが見えにくいことがわかります。

enter image description here

編集:これは、我々はアプリ全体で色を設定する方法です。それはまた、何の代わりに赤のバーティントカラーを使用した場合、白バックボタンは問題ではないでしょう

UINavigationBar.appearance().barTintColor = UIColor.red 
    UINavigationBar.appearance().tintColor = UIColor.white 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] 

我々は赤いバーと白のボタンがあり、当社の既存のナビゲーションコントローラにこれをプッシュするために使用するコード:

let ucvc = CNContactViewController(forUnknownContact: contact) 
ucvc.delegate = self 
ucvc.allowsEditing = true 
ucvc.allowsActions = true 
ucvc.alternateName = name() 
ucvc.contactStore = CNContactStore() 
self.navigationController?.pushViewController(ucvc, animated: true) 
+0

あなたはスクリーンショットを提供してもらえますか? – Sealos

答えて

0

あなたの質問は私の問題を解決した:私は同じ問題を持っている理由私が今知っています。

CNContactViewControllerをプッシュする直前にnavigationController.navigationBar.tintColorを青色に設定して解決しました。終了時に(デリゲートメソッドで)白に戻します。

+0

私はそれを試みたが、それは私に違いをもたらすように見えなかった。 UINavigationBar.appearance()も使用していますか?サンプルコードを提供することができますか?明らかにする必要があることはわかっていますが、私たちにとってはうまく機能しませんでした。 –

3

私はまったく同じ問題を抱えていました。間違いなくiOS 10のバグのようです。とにかく、ナビゲーションバーの透明度をfalseに設定して回避策を見つけました。次に、アプリケーションのメインウィンドウの背景色を、ナビゲーションバーにする色に設定します。

いくつかのコードスニペット:

UINavigationBar.appearance().isTranslucent = false 
UIApplication.shared.delegate?.window??.backgroundColor = UIColor.red 
+0

この奇妙な背景色のウィンドウが動作していますが、間違いなく清潔ではありません:) AppleがこのUINavigationBarの外観バグを修正したいと考えています! – zarghol

1

私はこのようにそれを解決してきました:

CNContactViewController *vc = [CNContactViewController viewControllerForContact:contact]; 
vc.delegate = self; 

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
    for (UIView *view in [vc.navigationController.navigationBar subviews]) { 
     view.tintColor = [UIColor darkTextColor]; 

     view.backgroundColor = [UIColor redColor]; 
    } 
}); 

[self.navigationController pushViewController:vc animated:YES]; 
関連する問題