2015-10-15 49 views
6

Chcę pokazywać (wcisnąć) segues w moim scenorysie, aby połączyć moje kontrolery view i kontroler nawigacyjny. Następnie paski nawigacyjne na kontrolerach view będą wyświetlane poprawnie. Na przykład: z szczegółami pokazu lub z aktualną modalnością pasek nawigacyjny zniknie.Wyłączanie animacji przejścia na segmenty

Ale nie chcę animacji na segmencie. Xcode daje ostrzeżenie jak: „Wyłączenie animacji segue nie jest dostępna przed iOS 9.0”

A ja chce cel wdrażania iOS 7.0 lub 8.0

Jak mogę rozwiązać ten problem?

Z góry dziękuję.

+0

zobaczyć ten link może być pomaga http://stackoverflow.com/questions/32890470/xcode -ignore-storyboard-warning –

Odpowiedz

13

Możesz wyłączyć animacje przed wykonaniem przejścia i po ponownym włączeniu.

UIView.setAnimationsEnabled(false) 
self.performSegueWithIdentifier("next", sender: nil) 
UIView.setAnimationsEnabled(true) 

Spowoduje to wykonanie przejścia bez animacji.

+0

To wydaje się działać dla mnie. – codeDude

+0

Miło słyszeć, nie zapomnij, aby oznaczyć akceptowane czy działa tak, jak chcesz :) – Arbitur

+0

Tak zrobię, ale jedno pytanie: U powiedzieć „po włączyć”: znaczy u u umieścić UIView.setAnimationsEnabled (true) kierować po wykonać na przykład na IBAction? – codeDude

3

zrobiłem niestandardową segue, używając odpowiedź Swift w tym wątku:
Push segue in xcode with no animation

Więc:

class ShowNoAnimationSegue: UIStoryboardSegue { 

    override func perform() { 
     let source = sourceViewController as UIViewController 
     if let navigation = source.navigationController { 
      navigation.pushViewController(destinationViewController as UIViewController, animated: false) 
     } 
    } 
} 

A w Xcode, w atrybutach inspektora niestandardowych segues, mam zaznaczone pole "Animacje" (TAK). Teraz ostrzeżenie zniknęło, dlatego właśnie odpowiadam na moje własne pytanie.

Nie jestem pewien, ale jeśli jest to trwałe rozwiązanie.

-3

Kliknij Segue strzałką w Main.Storyboard a następnie:

enter image description here

Wyjazd Animates

+0

Wiem, ale to daje ostrzeżenie: "Wyłączenie animacji przejścia nie jest dostępne przed iOS 9.0" – codeDude

+0

@codeDude tak, jest to przestarzała metoda. To normalne;) –

+0

O.o To działało dla mnie, a ponieważ moim celem wdrożenia jest iOS 9.0, nie było żadnego ostrzeżenia. Ale czy jest on przestarzały? Oczekiwałem ostrzeżenia na ten temat. –