Bagikan melalui


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:

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).

Adegan dapat didorong ke tumpukan navigasiAdegan dapat dimunculkan dari tumpukan navigasi

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.

Contoh halaman pertamaContoh halaman keduaSampel halaman kelima

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);