2016-04-19 3 views
2

Ich habe eine UIButton Swift-Unterklasse CustomButton und ich möchte Obj-C einen vorangestellten Namen verfügbar machen.Kann eine UI-Klasse mit verschiedenen Obj-C- und Swift-Namen im Storyboard verwendet werden?

@objc(PrefixCustomButton) public class CustomButton: UIButton { ... }

Diese Klasse existiert in einer Swift-Modul CustomModule. Ich integriere dieses Modul über Cocoapods in Objective-C und Swift-Apps, um CustomButton zu testen. Wenn ich versuche, CustomButton von Storyboard zu verwenden, erhalte ich folgende Fehlermeldung:

Unknown class _TtC9CustomModule17CustomButton in Interface Builder file.

Ich habe auch versucht PrefixCustomButton in der Storyboard und erhalten die gleichen Fehler mit:

Unknown class _TtC9CustomModule22PrefixCustomButton in Interface Builder file.

Edit: @ matt ist korrekt, PrefixCustomButton muss im Storyboard verwendet werden (für Swift- und Obj-C-Projekte). Der zusätzliche Teil, den ich vermisste, war, dass ich den Modulnamen nicht einstellen musste.

+0

'@objc (PräfixCustomButton) CustomButton: UIButton {...}' Das ist nicht Swift. Vielleicht meinst du '@objc (PrefixCustomButton) Klasse CustomButton: UIButton {...}' – matt

+0

Yup entschuldigen Sie, redigieren Sie! – faarwa

Antwort

0

Sie haben es selbst gesagt: Sie haben Objective-C einen anderen Namen gegeben. Daher ist der Name der Klasse PrefixCustomButton, soweit es den Interface Builder betrifft.

+0

Wenn ich PrefixCustomButton verwende, dann bekomme ich "Unbekannte Klasse _TtC9AppName22PrefixCustomButton in Interface Builder-Datei." – faarwa

+0

Nun, ich nicht. Etwas anderes muss weitergehen. – matt

+0

Dies scheint zu funktionieren, wenn ich die Schaltfläche als eine UIView in Storyboard statt einer UIButton hinzufügen. – faarwa

Verwandte Themen