Selama transisi segue khusus, item bilah navigasi tampilan salah tempat

Saya memiliki segmen khusus yang menggunakan UIViewAnimationOptionTransitionFlipFromLeft untuk transisi antar tampilan.

Saat tampilan baru muncul di layar, ada 'kedipan' singkat namun jelas yang disebabkan oleh elemen Bilah Navigasi yang berpindah dari posisi rata kiri ke posisi yang sesuai. Berikut ini adalah tangkapan layar yang diambil menjelang akhir transisi:

Item Bilah Nav yang Tidak Sejajar
Anda dapat melihat bahwa judul dan dua item tombol bilah dibiarkan rata; benar-benar keluar dari tempatnya di mana mereka pada akhirnya akan beristirahat.

Berikut adalah tangkapan layar yang diambil setelah transisi selesai:

Item Nav Bar yang disejajarkan dengan benar
Di sini tombol dan judul diposisikan dengan benar. Selama jeda antara gambar pertama dan kedua, ikon berkedip ke posisinya.

Tampilan diatur di storyboard. Tampilan bukan bagian dari hierarki UINavigationController, jadi bilah navigasi dan itemnya dibuat secara manual pada tampilan melalui pemeriksa atribut, 'Simulated Metrics' -> 'Top Bar: Translucent Navigation Bar'.

Bagaimana cara memaksa item bilah navigasi diposisikan dengan benar saat pertama kali muncul selama transisi?

Terima kasih sebelumnya! :)


person OneManBand    schedule 30.09.2014    source sumber


Jawaban (1)


Mengerti! Saya menemukan bahwa menggunakan blok [UIView performWithoutAnimation:^{}] di dalam transisiWithView memecahkan masalah ini:

[UIView transitionWithView:src.navigationController.view duration:0.2
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{
                                [UIView performWithoutAnimation:^{
                                    [navController setViewControllers:[NSArray arrayWithObject:dst] animated:NO];
                                }];
                            }
                completion:nil];
person OneManBand    schedule 06.10.2014