Corak Coordinator
Pusatkan logik aliran navigasi.
Corak Coordinator ialah pelajaran Swift Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Swift Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
Masalah Navigasi
Apabila paparan melakukan push dan memaparkan paparan lain secara terus, logik navigasi menjadi tersebar di seluruh aplikasi. Setiap skrin perlu mengetahui skrin seterusnya, lalu mewujudkan gandingan yang erat.
Corak penyelaras menyelesaikan masalah ini dengan mengasingkan navigasi ke dalam objek khusus.
Apakah Penyelaras
Penyelaras ialah objek yang tugas tunggalnya adalah mengurus aliran navigasi. Ia menentukan skrin seterusnya dan mencipta pengawal paparan atau paparan untuk ditunjukkan.
Paparan tidak lagi perlu memahami penghalaan — paparan hanya memberi isyarat tentang peristiwa, kemudian penyelaras menentukan tindakan yang perlu diambil.
Protokol Penyelaras
Kebanyakan pelaksanaan bermula dengan protokol kecil yang dipatuhi oleh setiap penyelaras.
protocol Coordinator: AnyObject {
var childCoordinators: [Coordinator] { get set }
func start()
}Penyelaras Konkrit
Penyelaras konkrit memiliki pengawal navigasi dan membina skrin pertama dalam start().
final class AppCoordinator: Coordinator {
var childCoordinators: [Coordinator] = []
let navigationController: UINavigationController
init(navigationController: UINavigationController) {
self.navigationController = navigationController
}
func start() {
let vc = HomeViewController()
navigationController.setViewControllers([vc], animated: false)
}
}Mengasingkan Paparan daripada Penghalaan
Manfaat utamanya: paparan tidak lagi mencipta skrin seterusnya. Sebaliknya, paparan memberitahu penyelarasnya bahawa sesuatu peristiwa telah berlaku, kemudian penyelaras menghalakan navigasi.
Ini bermakna sesuatu skrin boleh digunakan semula dalam aliran yang berbeza tanpa mengubah kodnya.
Memberi Isyarat Peristiwa ke Atas
Paparan berkomunikasi dengan penyelarasnya melalui delegate atau penutupan. Paparan tidak mengetahui ke mana ia akan pergi seterusnya.
protocol HomeViewControllerDelegate: AnyObject {
func homeDidSelectProfile()
}
final class HomeViewController: UIViewController {
weak var delegate: HomeViewControllerDelegate?
func profileTapped() {
delegate?.homeDidSelectProfile()
}
}Mengendalikan Route
Penyelaras mematuhi delegate dan menentukan cara navigasi apabila peristiwa dicetuskan.
extension AppCoordinator: HomeViewControllerDelegate {
func homeDidSelectProfile() {
let profile = ProfileViewController()
navigationController.pushViewController(profile, animated: true)
}
}Penyelaras child
Aliran besar seperti orientasi awal dan pembayaran mempunyai penyelaras child masing-masing. Induk memulakan child dan mengekalkannya dalam childCoordinators supaya ia terus hidup.
func startOnboarding() {
let child = OnboardingCoordinator(navigationController: navigationController)
childCoordinators.append(child)
child.start()
}Mengelakkan Kebocoran Memori
Oleh sebab induk mengekalkan child, anda mesti mengalih keluar child apabila alirannya tamat; jika tidak, child akan mengalami kebocoran. Pendekatan biasa adalah menggunakan panggilan balik penamatan.
func childDidFinish(_ child: Coordinator) {
childCoordinators.removeAll { $0 === child }
}Penyelaras dengan SwiftUI
Dalam SwiftUI, penyelaras sering mengawal laluan NavigationStack. Penyelaras memiliki laluan yang boleh diperhatikan, dan paparan melakukan append laluan kepadanya.
final class Router: ObservableObject {
@Published var path: [Route] = []
func push(_ route: Route) {
path.append(route)
}
}
enum Route: Hashable { case profile, settings }Ringkasan Manfaat
Corak penyelaras memberikan anda:
- Paparan boleh guna semula yang tidak menetapkan navigasi secara tegar
- Logik aliran berpusat yang mudah diubah
- Penghalaan yang boleh diuji dan diasingkan daripada antara muka pengguna
- Aliran yang boleh digubah melalui penyelaras child
Semakan Pantas
Uji pemahaman anda tentang penyelaras.
Ringkasan
Anda telah mempelajari corak penyelaras:
- Penyelaras memiliki navigasi supaya paparan tidak bergantung pada penghalaan
- Paparan memberi isyarat peristiwa ke atas melalui delegate atau penutupan
- Penyelaras child memodelkan aliran yang tersendiri
- Alih keluar child apabila aliran tamat untuk mengelakkan kebocoran
Apabila digabungkan dengan MVVM, penyelaras melengkapkan seni bina yang kemas dan boleh diuji.
Pelajari Swift dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 122
- Pelajaran
- 409
Soalan Lazim
Adakah pelajaran “Corak Coordinator” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Swift Academy, termasuk “Corak Coordinator”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Corak Coordinator”?
Pusatkan logik aliran navigasi. Anda berlatih Swift Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Swift Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Swift Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Corak Coordinator” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Corak MVVM
- Mengikat Model View pada View
- Corak Coordinator
- Menguji Model View