2013-01-31 60 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中確實發生了這種情況,所以儘管您應該看起來不錯,但請確保您在舊版本中進行測試。

相關問題