35

UIBarButtonItemiOS 6.1 で正常に動作するイメージを使用したカスタムがあります。しかし、iOS 7 には があり、tintColorこの色を画像に重ねます。ボタンに設定するtintColor[UIColor clearColor]、すべて一緒に表示されません。

iOS 6 と同じように、iOS 7 で戻るボタンを表示するにはどうすればよいですか? 助けてください?

iOS6.1

iOS7

4

6 に答える 6

43

UINavigationBar の外観を使用して、カスタムの戻るボタンをグローバルに設定する必要があります。

[UINavigationBar appearance].backIndicatorImage = customBackButton;
[UINavigationBar appearance].backIndicatorTransitionMaskImage = customBackButton;
于 2015-04-29T08:02:17.473 に答える
23

UIBarButtonItemiOS7でこのように設定してみてください:-

UIImage *temp = [[UIImage imageNamed:@"theImage"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];    
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:temp style:UIBarButtonItemStyleBordered target:self action:@selector(action)];

Apple Dev centerディスカッション フォーラムの元の投稿は次のとおりです。

バージョン iOS7 とそれ以前の両方をサポートするには、次system-versionのようなコードをチェックして設定します。

UIImage *temp=nil;

if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
{ 
    temp = [UIImage imageNamed:@"btn-back.png"]; 
}
else
{ 
    temp = [[UIImage imageNamed:@"btn-back.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
 }
于 2013-09-20T09:15:05.487 に答える
8

迅速なバージョン:

var backBtn = UIImage(named: "return_menu")
backBtn = backBtn?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

self.navigationController!.navigationBar.backIndicatorImage = backBtn;
self.navigationController!.navigationBar.backIndicatorTransitionMaskImage = backBtn;
于 2015-07-26T07:55:50.440 に答える
0

// ボタンに画像を追加

UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
[refreshButton setFrame:CGRectMake(0,0,30,30)];
refreshButton.userInteractionEnabled = YES;
[refreshButton setImage:[UIImage imageNamed:@"yourimage.jpg"] forState:UIControlStateNormal];

// ASSIGNING THE BUTTON WITH IMAGE TO BACK BAR BUTTON

UIBarButtonItem *refreshBarButton = [[[UIBarButtonItem alloc] initWithCustomView:refreshButton] autorelease];
self.navigationItem.leftBarButtonItem = refreshBarButton;
于 2013-09-20T10:07:49.970 に答える