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:
Kalıcı Arabirimler
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).
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 PopController
gezinti yığınından bir sahneyi program aracılığıyla da kaldırabilirsiniz.
PopController();
iOS'ta olduğu gibi, kullanarak PopToRootController
gezinti 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.
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);