mein Code irgendwo auf dem Weg brach, und stürzt ab, wenn die Tasten Navigationsleiste mitUnerkannte Selektor gesendet Instanz“Problem
Fehlermeldung:. *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView newMemoViewController:didAddMemo:]: unrecognized selector sent to instance 0x5b55a60'
Wenn das Debuggen, das Programm läuft die cancel
Methode ., und löst eine Ausnahme bei der @synthesize
Linie Allerdings kann ich damit nichts falsch sehen
die Symptome sind identisch, so dass ich bin mit dem entsprechenden Code nur für die Cancel
Taste.
NewMemoViewController.h
#import <UIKit/UIKit.h>
@protocol NewMemoDelegate;
@class AKVoiceMemo;
@interface NewMemoViewController : UIViewController {
@private
AKVoiceMemo *voiceMemo;
id <NewMemoDelegate> delegate;
}
@property (nonatomic, retain) AKVoiceMemo *voiceMemo;
@property (nonatomic, assign) id <NewMemoDelegate> delegate;
@end
@protocol NewMemoDelegate <NSObject>
- (void)newMemoViewController:(NewMemoViewController *)newMemoViewController didAddMemo:(AKVoiceMemo *)voiceMemo;
@end
NewMemoViewController.m
#import "NewMemoViewController.h"
@synthesize delegate;
- (void)viewDidLoad {
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
self.navigationItem.leftBarButtonItem = cancelButtonItem;
[cancelButtonItem release];
}
- (void)cancel {
[self.delegate newMemoViewController:self didAddMemo:nil];
}
Ihre Hilfe würde geschätzt.
bearbeiten: der Delegierte der RootViewController
:
- (void)newMemoViewController:(NewMemoViewController *)newMemoViewController didAddMemo:(AKVoiceMemo *)voiceMemo {
if (voiceMemo){
// Show the note in a new view controller
// TODO: Implement this
}
[self dismissModalViewControllerAnimated:YES];
}
Hallo James, ich habe auch den Code aus dem RootViewController hinzugefügt. vergessen die Zeile aus dem Header hinzuzufügen: @interface RootViewController: UITableViewController Lassen Sie mich wissen, wenn ich –
antalkerekes
etwas fehlt bin, was Objekt Sie als Delegierter Einstellung? –
Ich bin mir nicht sicher, was Sie meinen - der Delegat ist der Root-View-Controller, der das 'NewMemoDelegate'-Protokoll implementiert. Wenn die App abstürzt, ist "self.delegate" ** tatsächlich eine 'UIView', aber ich verstehe nicht warum. Ich schätze Ihre Hilfe, aber Sie müssen mich möglicherweise mit der Auflösung löffeln, da ich ein Delegierter in der Delegierung bin (und selbst programmiert) – antalkerekes