Iphone 向UINavigationItem LeftBarButtonItem添加自定义按钮

Iphone 向UINavigationItem LeftBarButtonItem添加自定义按钮,iphone,ios,uibarbuttonitem,Iphone,Ios,Uibarbuttonitem,有人能告诉我为什么这个代码不起作用吗 self.backButton = [UIButton buttonWithType:UIButtonTypeCustom]; [self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"] forState:UIControlStateNormal]; self.backButton.contentMode = UIViewContentModeCenter

有人能告诉我为什么这个代码不起作用吗

self.backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"]
                 forState:UIControlStateNormal];
self.backButton.contentMode = UIViewContentModeCenter;
[self.backButton addTarget:self
                    action:@selector(backButtonAction:)
          forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
[navigationItem setLeftBarButtonItem:backButtonItem animated:NO];
navigationItem.hidesBackButton = YES;
编辑:

leftBarButtonItem
上没有显示任何内容。这就是问题所在。

这应该行得通

CGRect rect = CGRectMake(10, 0, 30, 30);
self.backButton = [[UIButton alloc] initWithFrame:rect];
[self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"]
                 forState:UIControlStateNormal];
self.backButton.contentMode = UIViewContentModeCenter;
[self.backButton addTarget:self
                    action:@selector(backButtonAction:)
          forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
self.navigationItem.leftBarButtonItem = backButtonItem;
self.navigationItem.hidesBackButton = YES;
这应该行得通

CGRect rect = CGRectMake(10, 0, 30, 30);
self.backButton = [[UIButton alloc] initWithFrame:rect];
[self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"]
                 forState:UIControlStateNormal];
self.backButton.contentMode = UIViewContentModeCenter;
[self.backButton addTarget:self
                    action:@selector(backButtonAction:)
          forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
self.navigationItem.leftBarButtonItem = backButtonItem;
self.navigationItem.hidesBackButton = YES;
从文档中:

创建自定义按钮时,该按钮的边框最初设置为(0,0,0,0)。在将按钮添加到界面之前,应将边框更新为更合适的值

因此,如果在第2行中设置框架,您应该会看到一些内容,例如:

self.backButton.frame = CGRectMake(0, 0, 40, 20);
从文档中:

创建自定义按钮时,该按钮的边框最初设置为(0,0,0,0)。在将按钮添加到界面之前,应将边框更新为更合适的值

因此,如果在第2行中设置框架,您应该会看到一些内容,例如:

self.backButton.frame = CGRectMake(0, 0, 40, 20);

怎么不起作用?你看到了什么结果?有什么问题吗?是否未显示leftButton或其他内容?是否使用导航控制器?你们在哪里使用这些代码?我想,问题可能是你们的图片“back_arrow.png”。检查如果点击leftBarButtonItem应该显示的区域会发生什么。它接水龙头了吗?怎么不工作了?你看到了什么结果?有什么问题吗?是否未显示leftButton或其他内容?是否使用导航控制器?你们在哪里使用这些代码?我想,问题可能是你们的图片“back_arrow.png”。检查如果点击leftBarButtonItem应该显示的区域会发生什么。它抓住水龙头了吗?我知道这有点傻:)我没有为按钮定义框架。谢谢。我知道这有点傻:)我没有为按钮定义框架。谢谢。我知道这有点傻:)我没有为按钮定义框架。谢谢。我知道这有点傻:)我没有为按钮定义框架。谢谢