2013-01-31 108 views
2

当NavController出现在UIPopoverController中时,UIBarButtonItem在导航栏中被截断。任何想法是什么造成这个?UIParButtonItem在UIPopoverController中显示UINavigationController时截断

截图的问题:http://www.flickr.com/photos/[email protected]/8432176079

下面的代码:

UIViewController *vc = [[[UIViewController alloc] init] autorelease]; 

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(saveAction:)]; 

vc.navigationItem.rightBarButtonItem = saveButton; 

UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease]; 

UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:navController]; 
popoverController.delegate = self; 

[popoverController presentPopoverFromRect:buttonThatMakesThePopoverAppear.frame 
            inView:self.view.superview 
       permittedArrowDirections:UIPopoverArrowDirectionAny 
           animated:YES]; 

感谢, 贡萨洛

+0

您在这里有足够的“信誉”要点在您的帖子中包含图片,所以您应该在将来应该这样做,而不是有外部链接。添加/编辑问题时,编辑器在编辑器工具栏中有一个“插入图片”按钮。 – Rob

回答

0

在其他地方使用的外观管理员设置的自定义图像/背景/标题位置上的UINavigationController和的UIBarButtonItem造成这种情况是因为它没有考虑到popover的斜面边界。解决方案:在使用前颠倒为自定义外观设置的值,或者使自定义适用于所有情况,包括在弹出窗口中使用o nav bar。

2

这是因为您没有尊重iOS Human Interface Guidelines

您的自定义UIBarButtonItem视图和这些元素的自定义背景图像应该是30像素高。 popover的斜面边框会正确剪裁您的自定义图稿,因为它们不应该那么大。

当没有通过UIPopoverController显示这些按钮时,这些按钮在iOS 6中显示正常,但这仅仅是因为没有视图会限制边界。请注意,iOS 5中确实发生了这种情况,所以尽管您应该看起来不错,但请确保您在旧版本中进行测试。

相关问题