我在我的博客上做了辅导,所以我知道如何做一个可伸展的按钮,以显示下(堆叠)查看控制器的标题。但我所希望做的是图标(如 HINA 的家),没有文字,没有调整大小。
使用我自定义的图像和下面的代码,我得到一个延伸版(不想要),标题在顶部(不想要)上方(不想要),而且当点击时会亮亮/亮(良好);
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
< a href=>"https://i.sstatic.net/dRKNS.jpg" rel="没有跟随 nofollow noreferrer" > 屏幕片 1
现在,我搜索了这里,阅读了所有类似的问题 这些问题都回回了旧的答案, 并给我带来了奇怪的结果。这是我尝试过的代码;
UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
此方法不伸展我的自定义图像按钮( 是好的), 也不显示文字( 我想要的), 但是它下仍然有原始的蓝色按钮( WTF), 我的自定义按钮单击时不留声, 只有它下的蓝色按钮才会这样做!
< a href=>"https://i.sstatic.net/q6Oyb.jpg" rel="没有跟随 nofollow noreferrer" > 屏幕 2
帮帮忙,我错过什么了?
* 过时
我用一个可变图像来修补它。 这迫使它不伸展
UIImage *backButtonHomeImage = [[UIImage imageNamed:@"backButtonHomeWhite_30.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonHomeImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
为了修正我必须做的按钮上的标题显示
self.title =@" ";
现在,这是一个有点肮脏的修补方法,但它似乎在起作用。现在剩下的唯一问题是,我要在不同的视图上有一个不同的后退按钮,而这个方法正在引起一些麻烦;最后一个视图将按钮设置为覆盖所有其他视图。因此,最后,根据您如何在应用程序中浏览,回到一个先前的视图时,有一个错误的后退按钮,而它从未重新显示为正确的。
UPDATE 2: POTENTIAL IDEA:
下述是合理的解决办法,还是有可能破坏某种东西的黑客?
隐藏默认后退按钮,像这样,
[self.navigationItem setHidesBackButton:YES animated:NO];
...然后使用自定义的UIBarButtonItem, 并按我实际想要的放在后按钮位置上的风格按钮, 发送一个 < a href="https:// developler.apple.com/library/ios/#documentation/UIKit/Reference/UINAvigation Contractor_Class/Reference/Reference.html#/apple_ref/doc/uid/TP40006934" rel=“nofollown noreferrer" >poopView Consultractor Aimated: 给导航控制员的讯息, 当点击时 。
如果你知道一个更稳健的解决方案 请分享 谢谢