Ios UIBarButtonItem-更改背景并删除文本

Ios UIBarButtonItem-更改背景并删除文本,ios,xcode,uinavigationbar,uibarbuttonitem,Ios,Xcode,Uinavigationbar,Uibarbuttonitem,我正在尝试更改导航栏中的presentViewController中的Done按钮,在该按钮中,我成功地使用以下命令更改了背景: [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault]; UIImage *doneBackgroundImage = [[UIImage imageNamed:@"back-home.

我正在尝试更改导航栏中的
presentViewController
中的Done按钮,在该按钮中,我成功地使用以下命令更改了背景:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];
UIImage *doneBackgroundImage = [[UIImage imageNamed:@"back-home.png"]
                                            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

            [[UIBarButtonItem appearance] setBackgroundImage:doneBackgroundImage
                                                    forState:UIControlStateNormal
                                                       style:UIBarButtonItemStyleDone
                                                  barMetrics:UIBarMetricsDefault];
现在,当更改“完成”按钮并将其替换为图像时,图像将重复,而“完成”文本将保留在那里。使用此选项:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];
UIImage *doneBackgroundImage = [[UIImage imageNamed:@"back-home.png"]
                                            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

            [[UIBarButtonItem appearance] setBackgroundImage:doneBackgroundImage
                                                    forState:UIControlStateNormal
                                                       style:UIBarButtonItemStyleDone
                                                  barMetrics:UIBarMetricsDefault];
这就是它看起来的样子:


请问我做错了什么?

步骤:1

创建一个UIButton,并使用presentViewContoller中的
initWithCustomView
将其分配给UIBarButtomItem

UIImage *customImage = [UIImage imageNamed:@"yourCustomImage"];
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, customImage.size.width, customImage.size.height);
[backButton setImage:[UIImage imageNamed:@"yourCustomImage"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(showPreviousView) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *leftBarButton = [[UIBarButtonItem alloc]initWithCustomView:customButton];
步骤:2

你可以从中找到更多


对不起,但是没有一个解决方案对我有效。我输了。我只需要在预览PDF文件时从导航栏中删除已完成的文本,并将其替换为主图像。好的,我可以使用以下命令清除已完成的文本:
NSDictionary*attributes=[NSDictionary dictionary withobjectsandkeys:[UIColor clearColor],uitexttributetextcolor,[UIColor clearColor],uitexttributetextshadowcolor,nil];[[UIBarButtonItem外观]setTitleTextAttributes:状态的属性:UIControlStateNormal]但我如何不重复图像