アプリ デリゲートのapplication:didFinishLaunchingWithOptions:
メソッドで次のコードを使用して、アプリでカスタム ナビゲーション バーの外観を使用しています。
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor clearColor]];
ただし、システムによって設定されているプロパティにより、このビューが表示されているときにABPeoplePickerNavigationController
システムが余分な高さを使用するため、(連絡先を選択して新しい電子メールの [To:] フィールドにデータを入力できるようにするため)を提示すると、この外観が壊れます。 (「メールする連絡先を選択してください」)。UINavigationBar
prompt
UINavigationItem
修正は、次のコードを追加することです。
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBarStyle:UIBarStyleBlack];
次のようになります。
ただし、この小さなハックは、最初のビューから [グループ] ボタンをタップすると機能しません。ナビゲーション バーが非常に高いため、まだ壊れているように見えます。
そのビューのコントローラー名は何ですか (上記と同じ除外を適用できます)、またはこれを修正する別の方法はありますか?