2014-12-30 15 views
9

Ich habe einen SplitViewController gezogen und identifiziert es als eine Unterklasse, die ich MySplitViewController erstellt habe.So legen Sie Split View Controller Delegate vom Storyboard fest?

Wenn ich mit der rechten Maustaste auf das Splitview-Storyboard klicke, kann ich sehen, dass ich seine Master- und Detailansicht-Controller eingestellt habe, und außerdem, dass der Delegat NICHT gesetzt ist.

Ich habe meine Unterklasse konform zum Protokoll gemacht und einige Methoden implementiert, aber sie werden nicht aufgerufen (was ich nicht verstehe ist, weil der Delegat nicht festgelegt ist).

Aber jedes Mal, wenn ich versuche, von der Delegate-Option im Storyboard zu meiner Klasse zu ziehen, wird die Verknüpfung nicht hergestellt. Tatsächlich wird es sich mit nichts verbinden. Verwende ich dieses Protokoll falsch, sollte meine Unterklasse von UISplitViewController kein eigener Delegat sein? Wo definiere ich dann den Delegierten in Code oder anders?

Vielen Dank für Ihre Zeit.

Edit: Weitere Info-

Ich versuchte self.delegate = self; in viewDidLoad setzen, aber das schien nicht zu helfen.

Die besondere Methode, die ich außer Kraft zu setzen versuchen ist

splitViewControllerPreferredInterfaceOrientationForPresentation: 

und ich habe einen NSLog im Code zu setzen, um mich zu benachrichtigen, wenn es aufgerufen wird, die es nicht

+0

Ich habe selbst ähnliche Probleme und setze den Delegierten. Ich habe alle Arten versucht, indem ich den Detailansichtsdelegaten mache, den Delegierten der geteilten Ansicht mache, den Delegaten im Anwendungsdelegaten zuweist, eine NSObject-Unterklasse mache, die dem Delegateprotokoll entspricht, und dann ein Objekt in der Storyboard-Szene dieses benutzerdefinierten Typs hinzufüge . Immer noch keine Freude. Ist dies ein Lebenszyklusproblem? Ein Fehler in Xcode? Hast du dein Problem behoben? –

+0

Ich habe es geschafft, den Delegaten angeschlossen zu bekommen, so dass einige der Methoden funktionieren. SplitViewControllerPreferredInterfaceOrientationForPresentation: scheint jedoch keiner von ihnen zu sein. Ich frage mich, ob diese Methoden nicht aufgerufen werden, weil etwas anderes in der Ansichtshierarchie ähnliche Orientierungsmethoden aufruft. –

Antwort

0

ist Soweit Ich weiß, NSSplitViewController s kann keine Delegierten haben, und ihre splitView s können ihre Delegierten nicht zugewiesen haben, da der Controller als Delegat fungiert.

Wenn Sie Zugriff auf die Delegate-Methoden benötigen, erstellen Sie einfach eine Unterklasse des Controllers, und ändern Sie dann den Klassennamen in Interface Builder.

Verwandte Themen