在iOS 7中,我在UINavigationController的导航栏中显示了一个UIBarButtonItem . UIBarButtonItem具有纵向方向的图像和横向方向的另一个图像:
// "self" refers to the UINavigationController
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:portraitImage landscapeImagePhone:landscapeImage style:UIBarButtonItemStylePlain target:nil action:NULL];
如果只是旋转界面,则正确的图像用于界面方向 . 但是,如果UINavigationController的视图首先以横向方向显示(例如,通过横向显示或通过关闭以横向方向覆盖它的视图控制器),则使用 portrait 图像!为什么会这样?这是一个框架错误吗?如果是这样,有没有办法解决这个问题,那么横向图像将始终显示为横向?
1 回答
我遇到了同样的问题 .
我在UIBarButtonItem with separate portrait and landscape images - layoutSubviews not called when popping a view controller from UINavigationController找到了一个解决方案,听起来非常有希望,但它并没有改变方向改变时的图像 . 如果您找到更好的产品,请发布您的解决方案
风景图像一直在UIToolbar上工作,但不是UINavigationBar . 使用UINavigationBar,我得到你说的问题 . 我还有一个问题,如果我在横向按下按钮,它将改为纵向版本 .