Geçişlerini için Dinlenmek nedir ve nasıl kullanılır?
ve böyle büyük mükafat 4.5 iOS 6 yeni bir özellik olarak anmıştır "": . Gevşemek Geçiş
Gevşemek dedirtiyor film şeridinde sahnelerde mevcut örnekleri için geçiş izin verebilirsiniz
4.5. " Güncellemelerinden sürüm notları bu kısa giriş ek olarak, UİViewController şimdi yeni birkaç yöntem daha var gibi:
- (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier
Nasıl geçişlerini ve iş için kullanılabilir ne Gevşeyin?
CEVAP
Özetle
Biraklıma geldi şimdi gevşeyin(bazen denirçıkış buluyorgeri bas, kalıcı veya popover dedirtiyor gezinti çubuğu, gezinti öğesi attı, popover kapalı veya yöntemdir sunulan görünümü denetleyicisi görevden gibi ) gezinmek için kullanılabilir. Bunun üzerine aslında sadece bir değil, itme/kalıcı/popover dedirtiyor, örneğin "geri dön" gevşemek tek bir eylem ile navigasyon hiyerarşi içinde birden çok adım. bir dizi dinlenmek üzerinden yapabilirsiniz
Gerçekleştirmek için bir geçiş gevşemek, gevşemek için istediğiniz görünüm denetleyicisi bir eylem yöntemi bir eylem belirtmeniz gerekir.
Objective-C:
- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
{
}
Swift:
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}
Bu eylem yöntemin adı bu film aklıma geldi şimdi gevşeyin oluşturduğunuzda kullanılır. Ayrıca, bu yöntem aklıma geldi şimdi gevşeyin gerçekleştirilen hemen önce çağrılır. Kaynak UIStoryboardSegue
segue başlatan görünüm denetleyicisi ile etkileşim parametresi geçirilen (özelliği kalıcı bir görünüm denetleyicisi değerleri almak için örneğin) denetleyicisi görünüm elde edebilirsiniz. Bu bağlamda, yöntem UIViewController
prepareForSegue:
yöntem olarak benzer bir işlevi vardır.
iOS 8 güncelleme:Gevşemek geçişlerini de iOS 8, Bu adaptif dedirtiyor olarak çalışırGösterveAyrıntı Göstermek.
Bir Örnek
Bize bir gezinti denetleyicisi ve üç çocuk görünümü denetleyicileri ile bir film şeridi var
Yeşil Görünüm Denetleyicisi (geri dönmek) Kırmızı Görünüm Denetleyicisi için gevşeyebilirsiniz. Mavi ve Kırmızı ile Yeşil Yeşil ya da gevşeyebilirsiniz. Kırmızı ve Yeşil için özel eylem eklemek gerekir, örneğin burada dinlenmek etkinleştirmek için Kırmızı eylem yöntemi:
Objective-C:
@implementation RedViewController
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
}
@end
Swift:
@IBAction func unwindToRed(segue: UIStoryboardSegue) {
}
Eylem yöntemi eklendikten sonra bu film aklıma geldi şimdi gevşeyin control-sürükleme Çıkış simgesi ile tanımlanır. Burada düğmeye basıldığında Yeşil Kırmızı dinlenmek istiyoruz:
Görünüm denetleyicisi olarak tanımlanır için dinlenmek istiyorum: eylem seçmeniz gerekir
Ayrıca maviden Kırmızıya gevşeyebilirsiniz "iki adım" gezinti yığını). uzaklıktaki ( Anahtar doğru gevşemek eylemi seçmektir.
Bu segue yapılır gevşemek önce, eylem yöntemi olarak adlandırılır. Bu örnekte her ikisi de Yeşil ve maviden Kırmızıya geçiş dinlenmek İ tanımladı. UİStoryboardSegue parametre üzerinden eylem gevşemek yöntemi kaynağına ulaşabiliriz:
Objective-C:
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
UIViewController* sourceViewController = unwindSegue.sourceViewController;
if ([sourceViewController isKindOfClass:[BlueViewController class]])
{
NSLog(@"Coming from BLUE!");
}
else if ([sourceViewController isKindOfClass:[GreenViewController class]])
{
NSLog(@"Coming from GREEN!");
}
}
Swift:
@IBAction func unwindToRed(unwindSegue: UIStoryboardSegue) {
if let blueViewController = unwindSegue.sourceViewController as? BlueViewController {
println("Coming from BLUE")
}
else if let redViewController = unwindSegue.sourceViewController as? RedViewController {
println("Coming from RED")
}
}
Gevşemek, itme/kalıcı geçişlerini bir kombinasyonu ile çalışır. E. g. eğer kalıcı bir geçiş ile başka bir Sarı görünüm denetleyicisi ekledim, tek bir adımda Sarı dan Kırmızı geri gevşeyin.
Kod gevşemek
Sen bir kontrol sürükleyerek görünümü denetleyicisi Çıkış sembolü için bir şey ile tanımlamak dinlenmek geçiş olduğunda, yeni bir geçiş Belgesi Anahat görünür:
Segue seçme ve Niteliklerini olacak Müfettiş "" özelliği. Tanımlayıcı ortaya koymaktadır Bu amacın için benzersiz bir tanımlayıcı vermek için kullanın:
Bundan sonra gevşemek bir zaman, başka bir zaman gibi kodundan yapılabilir:
Objective-C:
[self performSegueWithIdentifier:@"UnwindToRedSegueID" sender:self];
Swift:
performSegueWithIdentifier("UnwindToRedSegueID", sender: self)
İçin AppDelegate nedir ve nasıl kullan...
Nasıl yansıması genel bir Yöntemi çağı...
Polimorfizmi nedir, ne işe yarar ve na...
Bir yığın izleme, nedir ve nasıl uygul...
Nasıl ELMAH el ile hataları oturum açm...