2012-08-06 11 views
5

Wie der Übergangseffekt aus einem modalen Übergang zu entfernen, wenn die modalen wie diese Anzeige:Modal segue keinen Übergang

[self performSegueWithIdentifier:@"SomeIdentifier" sender:self]; 

Ich weiß, dass ich in das Storyboard gehen und zwischen 4 verschiedenen Animationen wechseln, aber ich weiß nicht will irgendwas! Wie entferne ich sie?

Ich weiß, ich könnte presentModalViewController animated: NO sagen, aber ich kann nicht und kann es nicht so nennen. Ich muss die performSegueWithIdentifier Methode verwenden.

Antwort

9

Sie müssen einen benutzerdefinierten Übergang (ohne die Animation) erstellen, wenn Sie einen Übergang benötigen, aber die Animation nicht möchten.

Sie sollten Äpfel in der Ansicht Controller-Programmieranleitung "creating custom segues" example betrachten, sie tun einen benutzerdefinierten modalen Übergang ohne eine Animation (genau wie Sie wollten).

+0

Ausgezeichnete muchos gracias. – MobileMon

11

Hier ist die vollständige Quelle einer nicht-Animation segue:

BVNoAnimationSegue.h

#import <UIKit/UIKit.h> 
@interface BVNoAnimationSegue : UIStoryboardSegue 
@end 

BVNoAnimationSegue.m

#import "BVNoAnimationSegue.h" 

@implementation BVNoAnimationSegue 

- (void)perform 
{ 
    [[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO]; 
} 

@end 

Um dies zu nutzen, fügen Sie die Dateien zu deinem Projekt (zB als BVNoAnimationSegue.m/.h), dann im Storyboard, wähle 'Custom' als deine Segue Typ und Typ BVNoAnimationSegue in der Box. Nachdem Sie dies getan haben, scheint Xcode schlau genug zu sein, um 'keine Animationssequenz' als Option hinzuzufügen, wenn Sie in der Zukunft zwischen den UIViewControllern STRG-ziehen.

15

Im Storyboard können Sie Ihren Abschnitt auswählen und im Bereich "Informationen" die Option "Animate" deaktivieren. Das sollte es tun.

+1

Beste Antwort! Dies sollte die offizielle Antwort sein! –

+5

Dies funktioniert nur für Modal Style, es gibt keine "Animates" Option für Push –

-1

Eine weitere Möglichkeit können wir

YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"]; 
[self.navigationController pushViewController:aYourViewController animated:NO]; 

und fügen Sie den @"aYourViewControllerIdentifier"-Controller in Ihrem Storyboard anzuzeigen.

Verwandte Themen