2016-05-02 26 views
5

Nell'app di impostazione, se doppio tocco sulla riga 'Generale'. Spinge il controller della vista generale. E poi diceCome ottenere voce per leggere il titolo quando viene premuto il nuovo controller di visualizzazione?

"Generale"

(Il nome del controller di vista corrente)

Poi

"Impostazioni, pulsante Indietro"

(Il nome dell'articolo selezionato)

Tuttavia nella mia app con un costume self.navigaitonItem.titleView si dice solo

"tasto domestico, Indietro"

Come faccio a farlo per leggere il nome dello schermo? (Mi sono stancato di impostare self.title)

risposta

0

Non l'ho testato ma potrebbe essere necessario verificare la proprietà accessibilityLabel della vista. Dalla documentazione:

Per impostazione predefinita, i controlli e le viste UIKit standard hanno etichette derivate dai rispettivi titoli. Se si fornisce un controllo o una visualizzazione personalizzata, tuttavia, è necessario impostare questa proprietà in modo appropriato in modo che le applicazioni di assistenza possano fornire informazioni accurate agli utenti con disabilità.

+0

Questo è un buon punto, ma il 'titleView' è una pianura' UILabel' in modo che il 'accessibilityLabel' viene impostato automaticamente. Se tocco la vista del titolo, lo legge correttamente. Sto iniziando a pensare che questo sia un bug di iOS ma non riesco a trovare una buona soluzione. – Robert

+0

Forse il titolo è impostato dopo la spinta? prova i metodi init per impostare il titolo. – cekisakurek

+0

No - non ha funzionato .. Penso che il titolo sia letto quando la vista appare sullo schermo. – Robert

0
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // replace "nb" with your custom view & try 
    UINavigationBar *nb = self.navigationController.navigationBar; 
    // default is NO 
    nb.isAccessibilityElement = YES; 
    // exactly Value, not Label 
    nb.accessibilityValue = @"my navigation bar ztx"; 
    // set similar traits 
    nb.accessibilityTraits = UIAccessibilityTraitStaticText; 
}