2012-07-10 63 views

回答

9

稍微簡單的方法比繼承navbar,但相同的想法;

for(UIView *temp in self.navigationController.navigationBar.subviews) 
{ 
    [temp setExclusiveTouch:YES]; 
} 

把這個放在你添加你的酒吧按鈕項目之後。

6

我通過繼承UINavigationBar並重寫layoutSubviews方法來管理此問題。像這樣的東西:

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    for (UIView *view in self.subviews) { 
     view.exclusiveTouch = YES; 
    } 
} 
-2

這並不適用於工作的UIBarButtonItem使用initWithTitle

+0

什麼不行?這不應該是對他人帖子的評論嗎? – 2014-02-27 10:22:35

0

在iOS系統7這是行不通的創建。我已經使用這種方法來嘗試修復它。

for(UIView *temp in self.navigationController.navigationBar.subviews){ 
    [temp setExclusiveTouch:YES]; 
    for(UIView *temp2 in temp.subviews){ 
     [temp2 setExclusiveTouch:YES]; 
    } 
} 
3

疏浚過去我很抱歉。我偶然發現了這一點,並希望有更好的方法比循環子視圖。

我發現下面讓UIBarButtonItems獨家:

[self.navigationController.navigationBar setExclusiveTouch:YES]; 

iOS7可能已經做出獨佔觸摸繼承。

+1

它不適合我。我在iOS7上運行。 – Qiusheng 2014-09-23 19:24:47

+0

這也不適用於iOS 8。 – 2015-02-25 23:05:46