Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 删除uibarbuttonitem后退按钮的背景图像_Iphone_Ios_Uibarbuttonitem_Back Button - Fatal编程技术网

Iphone 删除uibarbuttonitem后退按钮的背景图像

Iphone 删除uibarbuttonitem后退按钮的背景图像,iphone,ios,uibarbuttonitem,back-button,Iphone,Ios,Uibarbuttonitem,Back Button,我想删除UIViewController backbutton的背景 我该怎么做 我尝试了以下代码 backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back.png"] landscapeImagePhone:nil style:UIBarButtonSystemItemCancel target:self action:nil]; [backButton setBackgroundIma

我想删除UIViewController backbutton的背景

我该怎么做

我尝试了以下代码

backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back.png"] landscapeImagePhone:nil style:UIBarButtonSystemItemCancel target:self action:nil];
    [backButton setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
self.navigationItem.backBarButtonItem = backButton;

但它不起作用

u导航。backBarButtonItem
不用于设置当前视图控制器的后退按钮,它用于设置从当前视图控制器按下的控制器的后退按钮

假设现在
UINavigationController
中显示了
ViewController1
,您可以设置
ViewController1
backBarButton
。后退按钮不会改变,但当你按下
ViewController2
,你会看到
ViewController2
的后退按钮是你为
ViewController1
设置的


要设置
ViewController1
的后退按钮,您可以在按
ViewController1
的ViewController中设置它,或者您可以使用
self.navigationItem.leftBarButtonim=YourButton
,后一种方法需要在按钮上添加事件侦听器,不要试图修改
UINavigationBar
的后退按钮图像。这是不可能的,因为这是默认情况

而是将另一个自定义
ui按钮
作为
ui导航栏
项,然后您可以根据需要自定义它

UIButton *btnItem = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
[btnItem setTitle:@"title" forState:UIControlStateNormal];
[btnItem addTarget:self action:@selector(btnItem_click:) forControlEvents:UIControlEventTouchUpInside];
self.topItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:btnItem];

这个代码对我有用

UIImage *backButtonImage = [UIImage imageNamed:@"back.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
[backButton setFrame:CGRectMake(0, 0, 30, 30)];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];
[backBarButton setAction:@selector(backButtonPressed)];
self.navigationItem.leftBarButtonItem = backBarButton;
-(void)backButtonPressed{
    [self.navigationController popViewControllerAnimated:YES];
}

您正在尝试修改
UINavigationBar
后退按钮的
后退图像?是的,我正在尝试!请澄清您的问题??使用图像进行解释,如果您同时使用UIBarButtonSystemItemCancel,它将发出警告…您解决了问题吗?谢谢,但我需要实现功能!谢谢,但要返回到第一个viewController,我应该做什么呢?如果您正在设置BackbarButtonim,则无需执行任何操作。如果要设置leftBarButtonItem,则需要设置分配给UINavigationController的UIBarButtonItem的目标和选择器。leftBarButtonItem在选择器中手动调用UINavigationController popViewController。