2014-02-25 72 views
0

我在的UINavigationController上遇到了一個奇怪的問題。按鈕的邊緣上iOS7消失,所以它看起來是這樣的:右側欄按鈕上的奇怪偏移項目

enter image description here

起初,我以爲是我的UINavigationController相關類別的一些錯誤,但我打消了我所有的自定義代碼和所有的頭類別文件,並簡單地使用UINavigationController和一個空視圖控制器。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

VCTestViewController *vc = [[[VCTestViewController alloc]init]autorelease]; 
UINavigationController *nc = [[[UINavigationController alloc]initWithRootViewController:vc]autorelease]; 
self.window.rootViewController = nc; 
[self.window makeKeyAndVisible]; 

VCTestViewController.m -> viewDidLoad

self.view.backgroundColor = [UIColor whiteColor]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"hello" style:UIBarButtonItemStyleBordered target:nil action:nil]; 

的問題仍然存在(如上所示)。我無法弄清楚什麼是錯的。你對這個問題有什麼想法嗎?

+0

你可以分享的任何代碼? – Cyrille

+0

你是否收到故事板警告? –

+0

@JasonCoco我不在這個項目中使用故事板。 –

回答

0

我終於弄明白髮生了什麼事。

由βhargavḯ給出的鏈接不是我的問題的解決方案,但它是我的問題的原因。我的一位同事寫了一個類別UINavigationItem來縮小iOS7中的空白空間。然後他用自己的方法使用方法調整來交換系統方法setRightBarButtonItem:。我沒有意識到這一點。

所以我認爲如果您使用自己的方法交換系統方法,方法混合會非常危險。

2

你可以分享你的代碼行,如果它不工作:

- (UIBarButtonItem *)rightNavBarButton 
{ 
    UIButton *filterBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [filterBtn setTitle:@"hello" forState:UIControlStateNormal]; 
    filterBtn.frame = CGRectMake(0, 0,40,27); 
    [filterBtn addTarget:self action:@selector(getFriendsList) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *filterNavBarItem = [[UIBarButtonItem alloc] initWithCustomView:filterBtn]; 
    return filterNavBarItem; 
} 
+0

謝謝,這有效,但它不是我所期望的。這個問題在我的其他項目中不會發生,並且我已經刪除了每個額外的代碼,但是此問題仍然存在。我想弄清楚爲什麼會發生這種情況。 –

+0

您是否設置了導航標題視圖?添加背景圖片並查看UIBarButton項目的座標 –

+0

謝謝,我解決了這個問題。這是一場意外...... –