2017-03-12 4 views
0
Called

Ich habe eine Eigenschaft:iOS Objective-C UIBarButtonItem Aktion Nicht

@property (strong, nonatomic) IBOutlet UIBarButtonItem *backButton; 

es wie folgt festgelegt wird:

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(goBack:)]; 
    backItem.imageInsets = UIEdgeInsetsZero; 

    UIToolbar *backToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; 
    backToolbar.userInteractionEnabled = YES; 
    [backToolbar setTransform:CGAffineTransformMakeScale(-1, 1)]; 
    backToolbar.items = [NSArray arrayWithObjects:backItem, nil]; 
    backToolbar.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0]; 
    backToolbar.clipsToBounds = YES; 

    self.backButton = [[UIBarButtonItem alloc] initWithCustomView:backToolbar]; 
    self.backButton.enabled = YES; 
    self.backButton.imageInsets = UIEdgeInsetsZero; 

die ich dachte, den Wähler dazu wäre gesetzt haben würde:

Aber goBack pushed wird nie ausgeloggt, wenn ich auf die Schaltfläche klicken, obwohl die iframeView (nur ein UIWebView) geht auf die vorherige Seite.

ich auch die Aktion wie diese versucht habe Einstellung (Direkt unter dem obigen Code):

[self.backButton setTarget:self]; 
[self.backButton setAction:@selector(goBack:)]; 

Irgendwelche Ideen, wie ich den Code anpassen kann, so dass die Wähler aufgerufen, wenn ich die Zurück-Taste drücken ?

Antwort

1

Haben Sie Ihre backButton vom Storyboard erstellt (weil Sie es als IBOutlet deklarieren)?

Wenn Sie es bereits vom Storyboard erstellen, können Sie einfach Strg-Links klicken, um die Schaltfläche in Ihre Implementierungsdatei .m zu ziehen, in der - (IBAction)goBack:(id)sender den Selektor erstellen soll.

UPDATE: Ich habe gerade bemerkt, sagte man diese

Aber goBack herausgedrückt wird nie angemeldet, wenn ich auf die Schaltfläche klicken, obwohl die iframeView (nur ein UIWebView) zur vorherigen Seite geht.

UIWebView hat die Funktion goBack bereits. So durch

[self.backButton setAction:@selector(goBack:)]; 

Einstellung Wenn die Taste gedrückt wird, wird es die goBack Funktion des UIWebView genannt.

Alles, was Sie ist haben geben ihm einen anderen Namen:

[self.backButton setAction:@selector(backButtonPressed:)]; 

- (IBAction)backButtonPressed:(id)sender{ 
    NSLog(@"goBack pushed"); 

    [self.iframeView goBack];  

}

+0

Leider nicht, es ist programmgesteuert generiert –

+0

Bitte überprüfen Sie meine aktualisierte Antwort –

0

ich Ihren Code versucht, und ich fand eine Codezeile fehlt, weshalb die Wähler goBack: nicht ausgelöst wird . Wenn ich nicht falsch bin die Taste „Play“ ist nicht sichtbar, wenn Sie

self.navigationItem.rightBarButtonItem = self.backButton;

kompilieren Wie ich beobachtet man die Bar-Taste, Symbolleiste programmatisch erstellt haben, auch brauchen Sie nicht die @property (strong, nonatomic) IBOutlet UIBarButtonItem *backButton;, wenn Ihr nicht mit wo sonst im Code oder müssen Sie die IBOutlet weglassen.

Hope diese hilft.

Verwandte Themen