Ich habe eine benutzerdefinierte Unterklasse von UIView zusammen mit einer XIB-Datei erstellt und IBOutlets und IBActions in der benutzerdefinierten Klasse deklariert.Benutzerdefiniertes UIView von Xib geladen
@interface ContactUsView : UIView
@property (nonatomic, weak) IBOutlet UIButton *displayCloseButton;
- (IBAction)callButtonPressed:(id)sender;
- (IBAction)emailButtonPressed:(id)sender;
- (IBAction)displayCloseButtonPressed:(id)sender;
@end
In der XIB-Datei habe ich eine UIView gezogen, um meine benutzerdefinierte Ansicht darzustellen. Ich habe ein:
- Dateien owner = meine benutzerdefinierte Klasse
- Haben die schleppt in UIView zu meiner benutzerdefinierten Klasse.
Ich habe dann verschiedene Tasten hinzugefügt, die an die 3 oben genannten Methoden angeschlossen sind.
Im Inneren des ContactUsView.m Ich habe folgendes:
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"ContactUsView" owner:self options:nil];
for (id object in array) {
if ([object isKindOfClass:[ContactUsView class]])
self = (ContactUsView *)object;
}
}
return self;
}
Als ich gekommen, um diese Ansicht zu erstellen ich folgendes tun:
- (void)viewWillAppear:(BOOL)animated
{
ContactUsView *contactUs = [[ContactUsView alloc] initWithFrame:CGRectZero];
CGPoint origin = self.view.frame.origin;
CGSize size = self.view.frame.size;
[contactUs setFrame:CGRectMake(origin.x,
CGRectGetMaxY(self.view.frame) - 100,
size.width,
contactUs.frame.size.height)];
[self.view addSubview:contactUs];
}
Ausgabe Wenn ich auf ein Drücken von die Tasten, mit denen die Anwendung abstürzt: Thread 1: EXC_BAD_ACCESS (Code = 2, Adresse = 0xb0c
Kann mir jemand dabei helfen. Ich habe das Gefühl, dass ich irgendwo einen Fehler mache, wenn ich benutzerdefinierte uiviews von xibs erstellen und laden möchte.
Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen. Danke vielmals.
Zukünftige Referenz Wenn Sie eine benutzerdefinierte Ansicht mit einem xib erstellen, legen Sie den Eigentümer der Dateien NICHT fest. Erstellen Sie stattdessen alle Ihre IBOutlets und IBActions wie gewohnt und öffnen Sie dann die Registerkarte "Dienstprogramme", um den Drag & Drop von dort aus zu steuern.
Können Sie den ganzen Beitrag Error? Oder die Zeile, in der der Fehler tatsächlich passiert? Aktivieren Sie Haltepunkte bei Ausnahmen in XCode. – KerrM
Wenn ich einen Unterbrechungspunkt in einer der Methoden, die aufgerufen wird, setzen, wird der Haltepunkt nie erreicht. Es stürzt nur mit dem obigen Code ab und nichts zeigt sich in der Ausgabe. Ich habe einen Breakpoint 'All exceptions' hinzugefügt und immer noch nichts in der Ausgabe angezeigt. – pls