2011-02-02 6 views
6

Ho un'applicazione, diciamo "MyApp", che per impostazione predefinita carica il controller di visualizzazione "MyAppViewController" ogni volta che l'applicazione viene avviata. Successivamente, ho aggiunto un nuovo controller di visualizzazione 'NewViewControler' al progetto.Come modificare il controller di visualizzazione predefinito che viene caricato all'avvio dell'app?

Ora desidero che "NewViewController" sia il mio controller di visualizzazione predefinito che viene caricato all'avvio dell'app.

Per favore fatemi sapere quali cambiamenti devo apportare nel mio progetto per raggiungere questo obiettivo.

risposta

7
  1. Aprire MainWindow.xib e sostituire MyAppViewController con NewViewController.
  2. Nella classe di delega dell'app, sostituire la proprietà per MyAppViewController con una per NewViewController. Connetti NewViewController alla sua nuova presa in Interface Builder.
  3. In application:didFinishLaunchingWithOptions: aggiungi la vista di NewViewController alla finestra anziché la vista di MyAppViewController.
+0

RE # 1: ho trovato che se si modifica solo la classe di MyAppViewController a NewViewController, questo a volte sembra confondere Interface Builder. La mia app si sarebbe sviluppata, ma quando l'ho eseguita, si sarebbe bloccata, continuando a caricare il vecchio tipo di controller di visualizzazione, che ovviamente avevo cancellato. Sono stato in grado di risolvere il problema eliminando MyAppViewController in MainWindow.xib, quindi aggiungendo un controller di visualizzazione e cambiando la sua classe in NewViewController e ricablando l'uscita Delegato dell'app sul NewViewController. YMMV. – gulchrider

2

Molto probabilmente il tuo file NIB principale è ancora impostato su "MainWindow", controlla il tuo file * -Info.plist.

In questo caso è possibile aprire MainWindow.xib in Interface Builder. Dovresti vedere un elemento View Controller. Apri la finestra dell'ispettore e modifica l'Identità di classe per puntare alla tua nuova classe. Questo dovrebbe occuparsi di istanziare la tua classe.

Come questo si sente come una domanda "newbie" (si prega di perdonarmi se mi sbaglio) vorrei anche consigliare vivamente il seguente articolo:

iPhone Programming Fundamentals: Understanding View Controllers

ha aiutato a capire il tutto ViewController e la Interazione IB ..

+0

Come dice Ole Begemann, dovresti anche cambiare i riferimenti in AppDelegate e collegarlo con IB.Anche gli articoli collegati lo dimostrano. – adnans

0

Per quanto riguarda me con xcode 4.3.3, tutto ciò che dovevo fare era semplicemente sostituire tutti i riferimenti di 'MyAppViewController' con 'NewViewController' nei file h e m AppDelegate.

Forse tutti gli altri passaggi sono stati eliminati nelle versioni più recenti di xcode.

Spero che questo aiuti.

15

La sua facile, basta:

  • Aprire il Storyboard
  • Clicca sul controller della vista che corrisponde alla vista che si desidera essere vista iniziale
  • Aprire gli Attributi ispettore
  • Selezionare il Casella di controllo "è controller vista iniziale" nella sezione View Controller
Problemi correlati