2012-01-23 14 views
9

Ho un'interfaccia iPad definita in uno storyboard, con SplitViewController. Voglio impostare il delegato di SplitViewController in modo che punti al controller di dettaglio, ma IB non consentirà la connessione.SplitView in Storyboard, impossibile connettersi delegato

  • Inserendo un oggetto "oggetto" e cambiando la classe in quello del mio controller di dettaglio, il delegato punta a un'istanza diversa del controller di dettaglio rispetto a quella visualizzata.
  • I miei tentativi di collegarlo manualmente (in didFinishLaunching) nel delegato dell'app erano infruttuosi, il delegato era ancora nullo.
  • La modifica del delegato all'AppDelegate e l'implementazione del protocollo non funzionavano, ma il passaggio dei messaggi al controller dei dettagli non funzionava (anche se ho verificato che stavo riferendo la stessa istanza).

Niente funziona. Posso impostare self.splitViewController.delegate = self quando la vista di dettaglio viene caricata e quindi diventa il delegato senza problemi. Ma mi mancano tutte le chiamate delegate che accadono prima di quel punto.

Per il contesto, ho bisogno di ottenere le chiamate delegate di splitviewcontroller in modo che possa mostrare un pulsante nella vista dettagliata per mostrare un popover, come è prassi normale. Al momento, se l'app viene avviata in verticale, deve essere ruotata in orizzontale e quindi indietro affinché il pulsante venga visualizzato.

Ho fatto questo con "normali" xib senza alcun problema. Sembra essere un caso speciale del problema più generale di non poter collegare punti vendita tra le scene in uno storyboard.

risposta

9

Non ho idea del perché questo ha funzionato questa volta e non i primi 80 volte, ma ho aggiunto questo al mio AppDelegate:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; 
UINavigationController *navigationController = [splitViewController.viewControllers lastObject]; 
splitViewController.delegate = (id)navigationController.topViewController; 
+1

FYI, sto correndo nello stesso problema ancora con l'ultima Xcode> 6.1. Sto usando lo stesso work-around per quello che sembra un bug. – Drux

Problemi correlati