Bekerja dengan navigasi watchOS di Xamarin
Opsi navigasi paling sederhana yang tersedia di jam tangan adalah popup modal sederhana yang muncul di atas adegan saat ini.
Untuk aplikasi jam tangan multi-adegan ada dua paradigma navigasi yang tersedia:
Antarmuka Modal
PresentController
Gunakan metode untuk membuka pengontrol antarmuka secara modal. Pengontrol antarmuka harus sudah ditentukan dalam Interface.storyboard.
PresentController ("pageController","some context info");
Pengontrol yang disajikan secara modal menggunakan seluruh layar (mencakup adegan sebelumnya). Secara default judul diatur ke Batal dan mengetuknya akan menutup pengontrol.
Untuk menutup pengontrol yang disajikan secara modal secara terprogram, panggil DismissController
.
DismissController();
Layar modal dapat berupa satu adegan atau menggunakan tata letak berbasis halaman.
Navigasi Hierarkis
Menyajikan adegan seperti tumpukan yang dapat dinavigasi kembali, mirip dengan cara UINavigationController
kerja di iOS. Adegan dapat didorong ke tumpukan navigasi dan dimunculkan (baik secara terprogram atau berdasarkan pilihan pengguna).
Seperti halnya iOS, gesek tepi kiri menavigasi kembali ke pengontrol induk dalam tumpukan navigasi hierarkis.
Mendorong dan Memunculkan Kode
Watch Kit tidak memerlukan "pengontrol navigasi" pengarsipan berlebihan untuk dibuat seperti iOS - cukup dorong pengontrol menggunakan PushController
metode dan tumpukan navigasi akan secara otomatis dibuat.
PushController("secondPageController","some context info");
Layar jam tangan akan menyertakan tombol kembali di kiri atas, tetapi Anda juga dapat secara terprogram menghapus adegan dari tumpukan navigasi menggunakan PopController
.
PopController();
Seperti halnya iOS, dimungkinkan juga untuk kembali ke akar tumpukan navigasi menggunakan PopToRootController
.
PopToRootController();
Menggunakan Segues
Segues dapat dibuat di antara adegan di papan cerita untuk menentukan navigasi hierarkis. Untuk mendapatkan konteks untuk adegan target, sistem operasi memanggil GetContextForSegue
untuk menginisialisasi pengontrol antarmuka baru.
public override NSObject GetContextForSegue (string segueIdentifier)
{
if (segueIdentifier == "mySegue") {
return new NSString("some context info");
}
return base.GetContextForSegue (segueIdentifier);
}
Antarmuka Berbasis Halaman
Antarmuka berbasis halaman menggesek ke kiri-ke-kanan, mirip dengan cara UIPageViewController
kerja di iOS. Titik indikator ditampilkan di sepanjang bagian bawah layar untuk memperlihatkan halaman mana yang saat ini ditampilkan.
Untuk menjadikan antarmuka berbasis halaman sebagai UI utama untuk aplikasi jam tangan Anda, gunakan ReloadRootControllers
dengan array pengontrol antarmuka dan konteks:
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
ReloadRootControllers (controllerNames, contexts);
Anda juga dapat menyajikan pengontrol berbasis halaman yang bukan akar yang digunakan PresentController
dari salah satu adegan lain di aplikasi.
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
PresentController (controllerNames, contexts);