2012-07-10 8 views

risposta

9

metodo leggermente più facile che sottoclasse la barra di navigazione, ma la stessa idea;

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

Mettilo subito dopo aver aggiunto i pulsanti del tuo bar.

6

Ho gestito questo problema creando sottoclassi UINavigationBar e sovrascrivendo il metodo layoutSubviews. Qualcosa di simile a questo:

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

Questo non funziona per UIBarButtonItem creati utilizzando initWithTitle

+0

cosa non funziona? non dovrebbe questo essere un commento sul post di qualcun altro? –

0

In iOS 7 non funzionava. Ho usato questo metodo per provare a risolverlo.

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

Dredging up the past Mi chiedo scusa. Mi sono imbattuto in questo e ho sperato che ci fosse un modo migliore di scorrere attraverso le sottoview.

ho trovato che la seguente rende le UIBarButtonItems esclusivo:

tocco esclusivo
[self.navigationController.navigationBar setExclusiveTouch:YES]; 

iOS7 può aver fatto ereditato.

+1

Non funziona per me. Sono in esecuzione su iOS7. – Qiusheng

+0

Anche questo non funziona in iOS 8. –