Xamarin'de watchOS Gezintisi ile çalışma

Saat üzerinde kullanılabilen en basit gezinti seçeneği, geçerli sahnenin üstünde görünen basit bir kalıcı açılır penceredir.

Çok sahneli izleme uygulamaları için iki gezinti paradigması vardır:

Bir arabirim denetleyicisini PresentController modlu olarak açmak için yöntemini kullanın. Arabirim denetleyicisi interface.storyboard dosyasında zaten tanımlanmış olmalıdır.

PresentController ("pageController","some context info");

Modlu olarak sunulan denetleyiciler ekranın tamamını kullanır (önceki sahneyi kapsar). Varsayılan olarak başlık İptal olarak ayarlanır ve dokunulduğunda denetleyici kapatılır.

Program aracılığıyla sunulan denetleyiciyi program aracılığıyla kapatmak için öğesini çağırın DismissController.

DismissController();

Kalıcı ekranlar tek bir sahne olabilir veya sayfa tabanlı bir düzen kullanabilir.

Hiyerarşik Gezinme

iOS'ta çalışma şekline UINavigationController benzer şekilde, geriye doğru gezinilebilen bir yığın gibi sahneler sunar. Sahneler gezinti yığınına gönderilip çıkarılabilir (program aracılığıyla veya kullanıcı seçimiyle).

Scenes can be pushed onto the navigation stackScenes can be popped off of the navigation stack

iOS'ta olduğu gibi, sol kenardan çekme, hiyerarşik bir gezinti yığınında üst denetleyiciye geri döner.

Hem WatchKitCatalog hem de WatchTables örnekleri hiyerarşik gezinti içerir.

Kodda Gönderme ve Alma

Watch Kit, iOS'un yaptığı gibi aşırı kemerli bir "gezinti denetleyicisi" oluşturulmasını gerektirmez. Yalnızca yöntemini kullanarak bir denetleyici gönderin PushController ve otomatik olarak bir gezinti yığını oluşturulur.

PushController("secondPageController","some context info");

Saatin ekranı sol üst kısımda bir geri düğmesi içerir, ancak kullanarak PopControllergezinti yığınından bir sahneyi program aracılığıyla da kaldırabilirsiniz.

PopController();

iOS'ta olduğu gibi, kullanarak PopToRootControllergezinti yığınının köküne dönmek de mümkündür.

PopToRootController();

Segue'leri kullanma

Hiyerarşik gezintiyi tanımlamak için görsel taslaktaki sahneler arasında segue'ler oluşturulabilir. Hedef sahnenin bağlamını almak için işletim sistemi GetContextForSegue çağrısıyla yeni arabirim denetleyicisini başlatır.

public override NSObject GetContextForSegue (string segueIdentifier)
{
  if (segueIdentifier == "mySegue") {
    return new NSString("some context info");
  }
  return base.GetContextForSegue (segueIdentifier);
}

Sayfa Tabanlı Arabirimler

Sayfa tabanlı arabirimler, iOS'ta çalışma şekline UIPageViewController benzer şekilde soldan sağa doğru çekin. Şu anda hangi sayfanın görüntülendiğini göstermek için ekranın alt kısmında gösterge noktaları görüntülenir.

Sample first pageSample second pageSample fifth page

Sayfa tabanlı bir arabirimi izleme uygulamanızın ana kullanıcı arabirimi yapmak için bir dizi arabirim denetleyicisi ve bağlam ile kullanın ReloadRootControllers :

var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
ReloadRootControllers (controllerNames, contexts);

Ayrıca, uygulamadaki diğer sahnelerden birini kullanarak PresentController kök olmayan sayfa tabanlı bir denetleyici de sunabilirsiniz.

var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
PresentController (controllerNames, contexts);