2012-07-10 6 views

Antwort

9

Leicht leichtere Methode als Unterklasse der Navbar aber die gleiche Idee;

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

Setzen Sie dies, nachdem Sie Ihre bar-Taste Elemente hinzufügen.

6

Ich habe dieses Problem durch Unterklassenbildung von UINavigationBar und Überschreiben der layoutSubviews-Methode behoben. Etwas wie das:

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

Diese nicht für UIBarButtonItem funktioniert erstellt initwithtitle mit

+0

was funktioniert nicht? sollte dies nicht ein Kommentar auf jemandes Post sein? –

0

In iOS 7 es nicht funktionierte. Ich habe diese Methode verwendet, um es zu beheben.

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

Ausbaggern die Vergangenheit Ich entschuldige mich. Ich bin darauf gestoßen und habe gehofft, dass es einen besseren Weg gibt, als durch Subviews zu schlendern.

fand ich, dass die im Anschluss an die UIBarButtonItems exklusiv macht:

[self.navigationController.navigationBar setExclusiveTouch:YES]; 

iOS7 exklusiven Touch geerbt gemacht haben.

+1

Es funktioniert nicht für mich. Ich laufe auf iOS7. – Qiusheng

+0

Dies funktioniert auch nicht in iOS 8. –