IOS UIBarButtonItem funktioniert gut, während UIButton Ursachen Unrecognized Selector Geschickt Instanz

Ich versuche zu implementieren ist eine custom navigation bar button item, ich habe einen Auswahlbereich, wenn der Benutzer klickt auf der Menüleiste eine Funktion aufgerufen wird.
Wenn ich in der Menüleiste auf UIBarButtonItem es funktioniert einfach einwandfrei, aber ich habe zu verwenden ein benutzerdefiniertes Bild für den button ohne Grenzen und angeeignet Größe.

so, in viewdidload-ich nenne

- (void)viewDidLoad 
{
    [super viewDidLoad];
    //gear button on navigation Bar
    UIImage* imageback2 = [UIImage imageNamed:@"ICON - [email protected]"];
    CGRect frameimgback2 = CGRectMake(0, 0, 40, 40);

    UIButton *backButton2 = [[UIButton alloc] initWithFrame:frameimgback2];
    [backButton2 setBackgroundImage:imageback2 forState:UIControlStateNormal];
    [backButton2 addTarget:self
                    action:@selector(setColorButtonTapped:)
          forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *btn2 = [[UIBarButtonItem alloc] initWithCustomView:backButton2];


    UIBarButtonItem *btn3 =[[UIBarButtonItem alloc] initWithImage:imageback2 style:UIBarButtonItemStylePlain target:self action:@selector(setColorButtonTapped:)];

    self.navigationItem.rightBarButtonItem = btn2;
}

#pragma mark Callbacks

- (IBAction)setColorButtonTapped:(id)sender{
    if (_colorPicker == nil) {
        self.colorPicker = [[ColorPickerController alloc] initWithStyle:UITableViewStylePlain];
        _colorPicker.delegate = self;
        self.colorPickerPopover = [[UIPopoverController alloc] initWithContentViewController:_colorPicker];
    }
    [self.colorPickerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

gibt mir:

-[UIButton view]: unrecognized selector sent to instance 0x9466620
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton view]: unrecognized selector sent to instance 0x9466620'

Wenn ich

 self.navigationItem.rightBarButtonItem = btn2;

zu

 self.navigationItem.rightBarButtonItem = btn3;

Es funktioniert gut, aber die Schaltfläche Rahmen und hintergrund, Farbe und Größe von Bild

Also warum es gibt mir Fehler und wie kann ich diese Schaltfläche eine benutzerdefinierte Schaltfläche?

Edit:

Wenn ich eine void-Funktion wie

- (void)gearTapped{
    [self setColorButtonTapped:self];
}

und ändern selector-Taste, es gibt keine Fehler aber es zeigt popUp nur eine Zeile ein in der Mitte des Bildschirms

[backButton2 addTarget:self
                    action:@selector(gearTapped)
          forControlEvents:UIControlEventTouchUpInside];

IOS UIBarButtonItem funktioniert gut, während UIButton Ursachen Unrecognized Selector Geschickt Instanz

Es normalerweise funktionieren sollte, aber mit einer benutzerdefinierten Schaltfläche
IOS UIBarButtonItem funktioniert gut, während UIButton Ursachen Unrecognized Selector Geschickt Instanz

InformationsquelleAutor Mord Fustang | 2012-09-26
Schreibe einen Kommentar