StoryBoards で iOS 5.1 を使用しています。標準のページ カール ボタンの色合いを変更したいのですが、できないようです。
ボタンはView Controller上にあり、Navigation ControllerのプッシュされたView Controllerです。Navigation Controller の色合いを変更したため、ツールバーが推測されます。ツールバーが目的の色で表示されます。
私の viewDidLoad メソッドは次のとおりです。
- (void)viewDidLoad
{
[super viewDidLoad];
// adjust the color of the curl button
if (self.curlButton) {
NSMutableArray * toolbarItems = [self.toolbarItems mutableCopy];
[toolbarItems removeObject:self.curlButton];
UIColor *barColor = self.navigationController.toolbar.tintColor;
UIBarButtonItem *newPageCurl = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPageCurl target:self.curlButton.target action:self.curlButton.action];
newPageCurl.tintColor = barColor;
NSLog(@"%@", newPageCurl.tintColor);
[toolbarItems addObject:newPageCurl];
self.toolbarItems = toolbarItems;
}
}
self.curlButton
Interface Builder で構成されたページ カール ボタンのアウトレットです。
私はすでに色合いを に設定しようとしましたがself.curlButton
、これは最初は nil でしたが、うまくいきませんでした。ボタンは同じ青い色合いでした。
SOに関する回答のいくつかは、プログラムで新しいボタンを作成する必要があると言っています。これが私がここで試していることです。
barColor
に正しい色が含まれていることを確認しました。行をコメントアウトするremoveObject
と、2 つのカール ボタンが正しく生成されましたが、どちらも青色でした。
NSLog は、newPageCurl
ボタンに正しい色合いが設定されていることを確認します。
viewDidAppear
ツールバーを最初に表示する必要がある場合に備えて、代わりにこれをすべて実行しようとしましたが、ボタンはまだ青で、新しい色合いを使用していませんでした。