在UIToolbar中导致重影UIBarButtonItems的原因是什么?

时间:2016-02-04 12:45:48

标签: ios ipad uinavigationcontroller

在iOS应用程序中实现iPad-Multitasking时,旧的Bug再次出现。

UIToolbar with ghosting buttons

您所看到的是由{UIDavigationController创建和管理的UIToolbar,其中包含来自最前面的viewcontrollers toolbarItems的按钮项。该应用程序在50/50多任务设置中的iPad Air 2上的模拟器中运行。当应用程序在多任务处理(主页按钮)时进入后台然后再次进入前景(点击跳板图标)时,会发生错误。

我之前看到过此效果,通常与旋转设备有关。 “解决方法”通常是在主队列的块中执行所有工具栏更改代码,例如viewWillAppear:

看起来下方绘制了另一个UIToolbar,并且按钮位置有一些偏移,导致这种视差效果。在调试器中检查时,基础UINavigationControllerUISplitViewController似乎设置正确(viewcontroller堆栈有意义等等。)

由于此bug在我的应用程序中已经退步,我真的很想了解这里发生了什么来实际修复它。

1 个答案:

答案 0 :(得分:1)

我终于找到了它。

当重新配置对特征集合更改作出反应的用户界面时,我将UIBarButtonsItemsnavigationItem移到了'toolbarItems'。

有一个代码路径,在将它们添加到导航栏之前,我没有从工具栏中删除按钮。这导致之后工具栏中的重复按钮。重复项是UINavigationButton个对象,它们似乎是UINavigationBar中按钮的内部表示,并且实际上并不属于UIToolbar