3

アプリ デリゲートのapplication:didFinishLaunchingWithOptions:メソッドで次のコードを使用して、アプリでカスタム ナビゲーション バーの外観を使用しています。

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor clearColor]];

ただし、システムによって設定されているプロパティにより、このビューが表示されているときにABPeoplePickerNavigationControllerシステムが余分な高さを使用するため、(連絡先を選択して新しい電子メールの [To:] フィールドにデータを入力できるようにするため)を提示すると、この外観が壊れます。 (「メールする連絡先を選択してください」)。UINavigationBarpromptUINavigationItem

修正は、次のコードを追加することです。

[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBarStyle:UIBarStyleBlack];

次のようになります。

連絡先リストの固定表示

ただし、この小さなハックは、最初のビューから [グループ] ボタンをタップすると機能しません。ナビゲーション バーが非常に高いため、まだ壊れているように見えます。

[グループ] ボタンをタップした後の非常に高いナビゲーション バーの壊れたビュー

そのビューのコントローラー名は何ですか (上記と同じ除外を適用できます)、またはこれを修正する別の方法はありますか?

4

2 に答える 2

0

私は今これを打っています..運が解決しましたか?ABPeoplepickerNavigationControllers ビュー コントローラーを介して相互作用し、appearanceWhenContainedIn メソッドを適用しようと考えています...

于 2013-01-21T16:42:37.697 に答える