9

我有我的唯一,iOS5的应用navigationControllerDelegate时淡入:避免的UIBarButtonItem淡出/ pushViewController动画

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"common-settingsbutton"] style:UIBarButtonItemStylePlain target:nil action:nil]; 
    [viewController.navigationItem setRightBarButtonItem:myButton]; 
} 

它的工作原理,但与默认的动画推视图控制器时(即使用“推segue“)rightBarButtonItem在动画过程中淡出和淡入淡出。

我该如何避免这种情况?


UPDATE

唯一解决方法我发现是:
创建UINavigationBar的背景与PNG绘制相同UIBarButtonItems(在相同的位置,相同的颜色),并设置背景正确地基于在我需要的按钮上。 然后,当然,添加您的UIBarButtonItems。

回答

3

我发现的唯一的解决方法是: 创建UINavigationBar的背景与PNG绘制相同UIBarButtonItems(在相同的位置,相同的颜色),并设置背景的基础上正确的按钮,我需要。然后,当然,添加您的UIBarButtonItems。

0

在推入视图控制器而不是协议方法之前创建按钮。

+0

我得到了同样的行为,也需要在每个viewcontroller中的所有“prepareForSegue”中实现相同的代码,而不是只在一个地方有代码 – 2012-02-17 12:18:43

0

按照文档可以禁用动画的BarButtonItem

[viewController.navigationItem setRightBarButtonItem:myButton animated:NO]; 

但是,这似乎并没有在故事板制作的项目工作。按钮仍然在动画

+1

是的,我已经试过这种方式,它没有工作 – 2012-02-27 10:22:13

0
button. adjustsImageWhenHighlighted = NO; 

当你点击rightBarButton它突出显示,如淡入/淡出。为了避免该按钮的一个属性调整图像当高亮显示设置为否。

+0

一般来说,如果答案包含对代码意图做什么的解释,以及为什么解决问题而不介绍其他问题,答案会更有帮助。 – Peter 2017-06-28 11:12:23

+0

随意将其粘贴到答案中。谢谢 ! – Peter 2017-06-28 11:17:38