2012-08-25 4 views

Antwort

13

Machen Sie den Übergang direkt von einem View-Controller zum anderen, anstatt ihn mit dem Button zu verbinden. Gib ihm einen aussagekräftigen Namen.

Führen Sie dann in der Aktionsmethode Ihrer Schaltfläche aus, was Sie zuerst tun müssen, und führen Sie dann den Übergang mit der performSegueWithIdentifier: Methode Ihres View-Controllers unter Verwendung des aussagekräftigen Namens aus, den Sie zuvor ausgewählt haben.

Aus Ihren Kommentaren scheint es, als ob Sie versuchen, Eigenschaften für den View-Controller festzulegen, der in Ihrem Segment angezeigt wird. Wenn dies der Fall ist, sollten Sie prepareForSegue: implementieren und segue.destinationViewController verwenden, um einen Zeiger auf den Ansichtscontroller zu erhalten, der im Begriff ist, zu erscheinen.

+0

Danke für die Hilfe. Ich habe versucht, zu tun, was Sie gesagt haben, aber immer noch wird die Ansicht zuerst gedrückt und die Handlung wird danach durchgeführt. Hier ist die Codierung ich verwende - 'code' - (IBAction) searchButtonPressed: (id) sender { Viewcontroller * Viewcontroller = [[Viewcontroller alloc] initWithNibName: @ "Viewcontroller" Bundle: nil]; viewController.query = [NSString stringWithFormat: @ "% @", search.text]; [self performSegueWithIdentifier: @ "search" sender: self]; [viewController release]; } 'code' –

+0

Nun, das wird nicht funktionieren! Wenn das Segment ausgeführt wird, erstellt das Betriebssystem einen neuen View-Controller für Sie, sodass das Programm, das Sie in Ihrem Code vorgenommen haben, nichts unternimmt. Es sieht für mich so aus, als sollten Sie diese Eigenschaften in 'prepareForSegue:' setzen. – jrturton

+0

Ich habe beide Lösungen implementiert, die Sie gesagt haben. Die Dinge scheinen ein bisschen gut zu sein, aber jetzt stürzt die App ab. Ich habe versucht, diese - - (IBAction) searchButtonPressed: (ID) Absender { [self performSegueWithIdentifier: @ "Suche" Absender: Absender]; } - (void) prepareForSegue: (UIStoryboardSegue *) von Segue Absender: (id) sender { if ([segue.identifier isEqualToString: @ "search"]) { Viewcontroller * = Viewcontroller [segue destinationViewController]; viewController.query = [NSString stringWithFormat: @ "% @", search.text]; [viewController release]; } } –

Verwandte Themen