目的の画像をmyButton.png
、1x1透過pngをtransparent.png
とする。
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"myButton"] style:UIBarButtonItemStylePlain target:aTarget action:anAction]; [item setBackgroundImage:[UIImage imageNamed:@"transparent"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; aViewController.navigationItem.rightBarButtonItem = item; [item release];
背景画像が設定されない場合iOSデフォルトの青めのボタンが設定されるので、透過画像を背景に指定することで背景が描画されないようにする必要がある。
このやり方はUITabBarの選択時に描画されるselectionIndicatorImage
でも同様。