Ich habe eine xib-Datei mit einem kleinen UIView
darauf, die wiederum einige Labels enthält. Jetzt versuche ich, das UIView
in ein existierendes UIViewController
zu laden und einen der Label-Texte zu ändern. Der Grund, warum ich das so machen möchte, ist, dass UIView
mit verschiedenen Label-Texten wiederverwendet wird. Daher dachte ich, eine benutzerdefinierte Klasse zu erstellen und sie von einem Xib zu laden wäre der beste Weg.
Ich habe verschiedene Möglichkeiten versucht, es zu laden, und ich habe es erfolgreich auf meinem Viewcontroller angezeigt. Das Problem ist, sobald ich versuche, eine IBOutlet
im Interface Builder zu verknüpfen und darauf zuzugreifen, stürzt meine App ab.
Ich habe eine benutzerdefinierte UIView
-Klasse erstellt, die wie folgt aussieht:
CoverPanel.h
%Vor%CoverPanel.m
%Vor% In CoverPanel.xib
habe ich UILabel
mit dem Headline-Outlet verknüpft.
In meinem Viewcontroller, hier ist, wie ich die CoverPanel
Instanz erstellen, und hier stürzt es ab:
So weit, so gut. Es zeigt das UIView
genau so an, wie es in der .xib angeordnet ist.
Aber sobald ich versuche das headline.text
so zu ändern:
es stürzt mit diesem Fehler ab: Beenden der App aufgrund der nicht abgefangenen Ausnahme "NSInvalidArgumentException", Grund: "- [UIView-Überschrift]: Unbekannter Selektor, der an Instanz 0x5c22b00 gesendet wurde"
Es mag etwas Kleines sein, das ich übersehe, aber es hat mich bisher stundenlang wahnsinnig gemacht. Hat jemand eine Idee?
Sie haben die Klasse Ihrer benutzerdefinierten Ansicht der Ansicht in Ihrer xib zugewiesen. Du brauchst das nicht zu tun, denn das, was du zurückbekommst, war die Ansicht von der Xib und du hast gerade dein CoverPanel durchgesickert. Ersetzen Sie einfach Ihren Initialisierer:
%Vor%