UINavigationBar后退按钮图标

时间:2014-05-02 20:16:50

标签: ios storyboard uinavigationitem

我想从头开始进行后退和前进导航。所以我在导航栏中添加了一个Button,但是我想要一个带有后面文本的确切iOS图标。

如何在不需要以编程方式导航的情况下自行获取此内容?我使用故事板。

忽略背景颜色我的意思是这个图标:

enter image description here

我不使用导航控制器我使用页面视图控制器,这就是原因。如果文字是图标的一部分,我不知道这个图标是如何工作的,所以我希望有人知道。

1 个答案:

答案 0 :(得分:0)

我现在知道你要做什么。不久前我做到了这一点。我实际上不得不自己制作按钮。你说你有一个左按钮,你的.h文件需要一个插座。如果你愿意,我们现在就称它为leftButton。你将需要一些图像,所以我将包括我制作的图像。我在Paint Code制作了它们。它是99美元,但我作为应用程序设计师做过的最好的投资之一。他们来了。我打电话给他们和whiteSpace ..

enter image description here enter image description here enter image description here enter image description here

最后两张图片是白色空间,所以一定要买到它们。将他们从此页面拉到桌面,然后将它们拖到您的项目中,确保单击目标,然后在执行此操作时复制到文件夹中。获得图标后,其余部分将以编程方式完成。在viewDidLoad方法中,您将更改leftButton的外观。

//First get the images
UIImage *arrow = [UIImage imageNamed:@"back.png"];
UIImage *wordSpace = [UIImage imageNamed:@"whiteSpace.png"];

//Next make a size of the image or it will be distorted
CGSize size = CGSizeMake(arrow.size.width + wordSpace.size.width, arrow.size.height);

//Put the two images together
UIGraphicsBeginImageContext(size);
[arrow drawInRect:CGRectMake(0, 0, arrow.size.width, size.height)];
[wordSpace drawInRect:CGRectMake(arrow.size.width, 0, wordSpace.size.width, wordSpace.size.height)];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//Assign the icon to the button
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonClicked)];
[backButton setBackgroundImage:finalImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

//Move title over a bit to make it look nice
[backButton setTitlePositionAdjustment:UIOffsetMake(-20, 0) forBarMetrics:UIBarMetricsDefault];

//Make your button this new backButton
_leftButton = backButton;

现在您有了一个自定义后退按钮,您可以指定@selector(backButtonClicked)。我不确定您使用的是页面控制器,但在我的使用中,我使用了popViewController。但我在项目中确实有一个导航控制器。您可能需要使用其他方法调用适当的VC。但这是backButtonClicked。

- (void)backButtonClicked
{
  //NSLog(@"going back");
  [self.navigationController popViewControllerAnimated:YES];
  //change to call your VC
}

除了调用你想要的视图控制器之外,还应该这样做。如果您不知道如何以编程方式调用视图控制器,则here是一个链接。