[iOS6] UIToolBar上的UIBarButtonItem消失及解决

今天在做一个画面的时候出现了一个很奇怪的现象(目前原因未明)

环境:
    
iOS6  + iPhone6模拟器 + Xcode4.5 + iMAC


原始需求:
   Xib文件:
        创建了一个简单View
        View的上方放了一个UIToolBar(称TopBar), 在这个UIToolBar上放了一个UIBarButtonItem,姑且称这个Button为Button A,同时放了一个UILabel
        View的下方也放了一个UIToolBar(称BottomBar),在这个UItoolBar上放了一个UIBarButtonItem,姑且称这个Button为Button B, 点击 Button B会弹出UIActionSheet
        在UIActionSheet上有三个Button,一个是Cancel,第二个是弹出Warning Dialog,第三个是打开另外一个UI窗口


现象:
       iOS设备转向到LandScape
      点击Button B,弹出UIActionSheet
      点击UIactionSheet上面的第三个Button,弹出其他窗口,然后再点击NavigationBar上的返回按钮,返回这个页面,发现, 顶部的TopBar上面的Button A消失了, 但是Label和Bar本身是显示好好的。此时再次点击Button B,弹出UIActionSheet然后点击Cancel按钮,发现Button A又回来了。
    如果点击UIActionSheet上面的第一个CancelButton或者是点击第二个弹出Dialog的button都不会出现这种情况
   同样是UIToolBar的 BottomBar上面的Button B却不受影响
   Device的方向为Portrait时也不会发生该情况
   iOS5上面运行也不会发生该情况
 
 
图片可以参考附件

目前原因不明,找到一个简单的解决方案:
httpstackoverflow.comquestions12890930uibarbuttonitems-of-a-uitoolbar-hiding-when-presenting-uiactivityviewcontroller

在push UIActionSheet之前将ToolBar上面的Button去掉,push完了后再附加上。
NSArray *barItems = self.navBar.items;
self.navBar.items = nil; // navBar 是 UIToolbar
[actionSheet showFromToolbar:self.navBar]; //TODO
[actionSheet release];
self.navBar.items = barItems;

     

猜你喜欢

转载自woniu1983.iteye.com/blog/1754972