Apakah ada cara untuk memiliki efek Transisi / animasi sambil mengganti viewcontroller yang ada sebagai rootviewcontroller dengan yang baru di appDelegate?
objective-c
ios
xcode
cocoa-touch
Jefferson
sumber
sumber
newViewController.view.layoutIfNeeded()
sebelum blok animasi memperbaiki masalah dengan elemen-elemen malas.Saya menemukan ini dan bekerja dengan sempurna:
di appDelegate Anda:
di aplikasi Anda
kredit:
sumber
Saya memposting jawaban Yesus diimplementasikan dengan cepat. Dibutuhkan pengidentifikasi viewcontroller sebagai argumen, memuat dari storyboard yang diinginkanViewController dan mengubah rootViewController dengan animasi.
Pembaruan Swift 3.0:
Pembaruan Swift 2.2:
Setelah itu, Anda memiliki penggunaan yang sangat sederhana dari mana saja:
Pembaruan Swift 3.0
sumber
Cepat 2
Swift 3, 4, 5
sumber
coba saja ini. Bekerja dengan baik untuk saya.
EDIT:
Yang ini lebih baik.
sumber
UIViewAnimationOptionAllowAnimatedContent|UIViewAnimationOptionLayoutSubviews
, atau menggunakan versi pertama, atau metode lain.Agar tidak memiliki masalah dengan flip transisi nanti di aplikasi ini baik untuk menghapus tampilan lama dari tumpukan juga
sumber
Jawaban yang benar adalah Anda tidak perlu mengganti
rootViewController
di jendela Anda. Alih-alih, buat customUIViewController
, tetapkan sekali dan biarkan menampilkan satu pengontrol anak sekaligus dan ganti dengan animasi jika diperlukan. Anda dapat menggunakan potongan kode berikut sebagai titik awal:Swift 3.0
Dan cara Anda menggunakannya adalah:
Contoh di atas menunjukkan bahwa Anda dapat bersarang
UINavigationController
di dalamFrameViewController
dan berfungsi dengan baik. Pendekatan ini memberi Anda tingkat kustomisasi dan kontrol yang tinggi. HubungiFrameViewController.display(_)
saja kapan saja Anda ingin mengganti pengendali root di jendela Anda, dan itu akan melakukan pekerjaan itu untuk Anda.sumber
Ini adalah pembaruan untuk swift 3, metode ini harus ada di delegasi aplikasi Anda, dan Anda menyebutnya dari pengontrol tampilan apa pun, melalui instance bersama dari delegasi aplikasi
Bagian yang hilang dari berbagai pertanyaan di atas, adalah
Semoga ini bisa membantu seseorang.
sumber
di AppDelegate.h:
di Controller Anda:
sumber
Saya mengusulkan cara saya yang berfungsi dengan baik dalam proyek saya, dan itu menawarkan saya animasi yang baik. Saya telah menguji proposal lain yang ditemukan di pos ini, tetapi beberapa di antaranya tidak berfungsi seperti yang diharapkan.
sumber
Animasi manis yang bagus (diuji dengan Swift 4.x):
Telepon dengan
sumber