2014-12-30 10 views
9

Ho trascinato uno splitViewController e l'ho identificato come sottoclasse che ho creato MySplitViewController.Come impostare il delegato del controller Vista Split da Storyboard?

Facendo clic con il pulsante destro del mouse sullo storyboard di splitview, è possibile vedere che ho impostato i controller Master e Detail view e inoltre che il delegato NON è impostato.

Ho reso la mia sottoclasse conforme al protocollo e implementato alcuni metodi, ma non vengono chiamati (cosa che non capisco perché il delegato non è impostato).

Ma ogni volta che provo a ctrl + trascinare dall'opzione delegato nello storyboard alla mia classe, non si collegherà. In realtà, non si collegherà a nulla. Sto usando questo protocollo in modo errato, la mia sottoclasse di UISplitViewController non dovrebbe essere il proprio delegato? Allora dove posso definire il delegato nel codice o in altro modo?

Grazie per il vostro tempo.

Edit: Maggiori info-

Ho provato a mettere in self.delegate = self; viewDidLoad, ma che non sembrano aiutare.

Il particolare metodo che sto cercando di sostituire è

splitViewControllerPreferredInterfaceOrientationForPresentation: 

e ho messo un NSLog nel codice di notificare me se viene chiamato, il che non è

+0

Sto riscontrando problemi simili, impostando il delegato. Ho provato tutti i tipi, delegare la vista dettagliata, delegare la vista divisa, assegnare il delegato al delegato dell'app, creare una sottoclasse NSObject conforme al protocollo delegato e quindi aggiungere un oggetto nella scena storyboard di questo tipo personalizzato . Ancora nessuna gioia. È un problema di ciclo di vita? Un bug in Xcode? Hai risolto il tuo problema? –

+0

Sono riuscito ad agganciare il delegato in modo che alcuni dei metodi funzionino. Tuttavia splitViewControllerPreferredInterfaceOrientationForPresentation: non sembra essere uno di questi. Mi chiedo se questi metodi non vengano chiamati perché qualcos'altro nella gerarchia della vista chiama metodi di orientamento simili? –

risposta

0

Per quanto riguarda Lo so, NSSplitViewController s non può avere delegati, e i loro splitView s non possono avere i loro delegati riassegnati poiché il controllore funge da delegato.

Se è necessario accedere ai metodi delegato, è sufficiente sottoclasse il controller, quindi modificare il nome della classe in Interface Builder.