2

Ich verwende 3 Ansichtssteuerelemente A, B, C. Hinzufügen eines Push-Segments im Storyboard von A nach B (z. B. segue1) und B nach C (sag segue2). A ist in einen Navigationscontroller eingebettet.Wenn Sie schnell auf eine Navigationsleistenschaltfläche klicken, wird die Ansicht mehrfach verschoben

In A, ich bin eine rechte Leiste hinzufügen und segue1 auf ihre Aktion ausführen. Ähnlich wie in B, füge ich einen weiteren rechten Balken hinzu und führe segue2 bei seiner Aktion aus.

Wenn ich den Knopf schnell mehrmals drücke, wird Ansicht B einmal gedrückt und dann Ansicht C wird mehrmals darauf gepusht.

Ist dies ein bekanntes Problem? oder stimmt etwas in meiner Implementierung nicht?

Edit: Hinzufügen von Code

Viewcontroller A:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertB:)]; 
    self.navigationItem.rightBarButtonItem = addButton; 
} 

- (void)insertB:(id)sender { 
    [self performSegueWithIdentifier:@"segue1" sender:sender]; 
} 

Viewcontroller B:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertC:)]; 
    self.navigationItem.rightBarButtonItem = addButton; 
} 

- (void)insertC:(id)sender { 
    [self performSegueWithIdentifier:@"segue2" sender:sender]; 
} 
+0

Code anzeigen, um festzustellen, ob bei der Implementierung ein Fehler aufgetreten ist – Hussein

Antwort

0

Stellen Sie die userInteractionEnabled Eigenschaft der Schaltfläche zu false, wenn sie gedrückt, und nach Schieben Sie es auf true.

+0

Ist dies bei einer solchen Implementierung immer erforderlich? – Neha

+0

Nein. Es könnte aber sein, dass die App eine Anfrage macht, die einige Zeit in Anspruch nimmt, bevor sie zur nächsten Ansicht weitergeht. Dadurch kann die Taste mehrmals gedrückt werden, bevor der Fortschritt beendet ist. Kannst du etwas Code zeigen? – Hussein

+0

Keine App macht keine Anfrage, ich habe in einem sehr einfachen Projekt mit keinem anderen Code getestet. Bitte überprüfen Sie den hinzugefügten Code in Frage – Neha