Domanda

Sto lavorando ad un'applicazione che mi piacerebbe usare lo stesso ibrido di navigazione e barre della barra che l'applicazione iPod / Music utilizza per navigare nelle playlist.

In sostanza:

  • Navigazione per affrontare approfondimenti in un particolare albero di elenco.
  • Una barra delle schede nella parte inferiore per passare da un elenco all'altro, che appare sulla maggior parte / tutti i sottoschermi.
  • I contenuti della barra delle schede sono costanti tra tutte le schermate.
  • La reazione della barra delle schede al tocco è la stessa su tutti gli schermi: fa tornare l'utente alla radice e li mette in quella lista.

Navigazione integrata nelle schede, schede incorporate nella navigazione? Nessuno dei due sembra che farà esattamente quello che voglio. D'altra parte, se rimango con un'app di navigazione di base e aggiungo semplicemente le schede, non avrò un sacco di codice extra?

Qual è il miglior approccio di base per questo?

È stato utile?

Soluzione

Ho creato app che fanno proprio questo. Il modo migliore per pensarci è iniziare dalla parte più stretta, i controller della vista individuale. Nell'esempio di iPod, ciò include controller per artisti, album, playlist, brani, ecc. Nota Se si tocca una playlist, si accede a un elenco di brani. Questi sono due controller di visualizzazione separati.

Ognuna delle schede che vedi sull'app per iPod contiene un controller di navigazione. Il controller di navigazione racchiude i controller di visualizzazione radice delle schede dell'app. Quindi, ciascuno dei controller di navigazione viene impostato come ViewController del controller di scheda. Il codice sarebbe simile a questo

FirstTabViewController *first = [[FirstTabViewController alloc] init...];
SecondTabViewController *second = ...;

UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:first];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:second];

myTabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nil];
// Then make sure to release things to avoid leaks

Se vuoi gestire la transizione da dire, Playlist- & Elenco di brani in una playlist selezionata, lo faresti nel viewcontroller Playlist ( [self.navigationController pushViewController: theListOfSongsViewController animato: SUREWHYNOT] ).

Altri suggerimenti

Finora, sto guardando un UITabBarController con UINavigationController in ogni riquadro con un piccolo codice personalizzato per riportare il controller di navigazione nella scheda di destinazione alla radice su un interruttore di tabulazione.

Apple ha un'ottima documentazione sulla combinazione dei controller di visualizzazione (controller di navigazione all'interno dei controller di scheda)

http://developer.apple.com/iphone /library/featuredarticles/ViewControllerPGforiPhoneOS/CombiningViewControllers/CombiningViewControllers.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top