ストーリーボードを使用して 2 つの画面を表示するアプリがあります。1 つ目はリスト (スクリーンショットでは "Lista" と呼ばれています) で、2 つ目はマップ ("Térkép") です。各ビューには左右のナビゲーション ボタンがあります。右ボタンを押すと、マップ ビューがナビゲーション コントローラーにプッシュされます。戻るボタンは、マップのviewDidLoad
メソッドから手動で非表示にします。
問題は、なぜ各画面でバー ボタン アイテムのサイズが異なるのかということです。ボタンのサイズを制御するにはどうすればよいですか?
ボタンの画像は同じサイズです。スキニングは、AppDelegate
外観設定を通じて行われます。
// navbar background
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bg-titlebar.png"]
forBarMetrics:UIBarMetricsDefault];
// navbar button background
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];
// back button background
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];