SORU
27 HAZİRAN 2012, ÇARŞAMBA


Ekran UİViewController üzerinde clearColor UİViewController

Ben bir UIViewController görünüm olarak bir küme/kalıcı üstünde başka bir UIViewController görünüm, gibi küme/kalıcı olmalı şeffaf ve ne olursa olsun bileşenleri eklenir küme olmalıdır görünür. Sorun siyah arka plan yerine alt görünümünü gösterir clearColor sahip olmaktır. Siyah clearColor bir arka plan olarak UIView yapmaya çalışıyorum. Herkes sorunun ne olduğunu biliyor mu? Herhangi bir öneri takdir.

FirstViewController.m

  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
  UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];

  [vc setModalPresentationStyle:UIModalPresentationFullScreen];
  [self presentModalViewController:vc animated:NO];  

SecondViewController.m

- (void)viewDidLoad {
     [super viewDidLoad];
     self.view.opaque = YES;
     self.view.backgroundColor = [UIColor clearColor];
}

ÇÖZÜLDÜ: Sorunları düzelttim. İPhone ve iPad her ikisi için de çok iyi çalışıyor. Siyah bir arka plan ile kalıcı Görünüm Denetleyicisi sadece/şeffaf clearColor. Değiştirmem gereken tek şey UIModalPresentationCurrentContext 11 *değiştirdim. Ne kadar basit!

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

DİKKAT:navigationController modalPresentationStyle bir özellik kullanıyorsanız:

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

DİKKAT: kötü haber yukarıdaki çözüm iOS 7 üzerinde çalışmıyor. İyi haber iOS7 için sorunu düzelttim. Yardım için birilerine sordum ve bana dedi ki:

Görünümü denetleyicisi yöntemdir sunarken, iOS sunulan süresince görünüm hiyerarşi görünümü altında denetleyicileri kaldırır. Bir yöntemdir sunulan görünümü denetleyicisi görünümü şeffaf olsa da, siyah olan uygulama penceresi dışında, altında bir şey yok. iOS 7 iOS sunulan görünüm denetleyicisi altındaki görünümleri kaldırmak değil neden yeni kalıcı bir sunum tarzı, UIModalPresentationCustom tanıttı. Bu kalıcı sunum tarzı kullanmak için ancak, kendi geçiş temsilci sunum işlemek için sağlamak ve animasyonlar kapatmak gerekir. Bu 'Özel Geçişler Görünümü Denetleyicileri' da kendi geçiş nasıl kapsayan 2013 https://developer.apple.com/wwdc/videos/?id=218 WWDC laflar temsilci. Kullanarak gösterilmiştir

İOS7 yukarıdaki sorun için çözüm görebilirsiniz: https://github.com/hightech/iOS-7-Custom-ModalViewController-Transitions

CEVAP
28 HAZİRAN 2012, PERŞEMBE


ÇÖZÜLDÜ: Sorunları düzelttim. İPhone ve iPad her ikisi için de çok iyi çalışıyor. Siyah bir arka plan ile kalıcı Görünüm Denetleyicisi sadece/şeffaf clearColor. Değiştirmem gereken tek şey UİModalPresentationCurrentContext için UİModalPresentationFullScreen değiştirdim. Ne kadar basit!

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

DİKKAT:NavigationController bu modalPresentationStyle bir özellik kullanıyorsanız:

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

DİKKAT: kötü haber yukarıdaki çözüm iOS 7 üzerinde çalışmıyor. İyi haber iOS7 için sorunu düzelttim. Yardım için birilerine sordum ve bana dedi ki:

Görünümü denetleyicisi yöntemdir sunarken, iOS sunulan süresince görünüm hiyerarşi görünümü altında denetleyicileri kaldırır. Bir yöntemdir sunulan görünümü denetleyicisi görünümü şeffaf olsa da, siyah olan uygulama penceresi dışında, altında bir şey yok. iOS 7 iOS sunulan görünüm denetleyicisi altındaki görünümleri kaldırmak değil neden yeni kalıcı bir sunum tarzı, UİModalPresentationCustom tanıttı. Bu kalıcı sunum tarzı kullanmak için ancak, kendi geçiş temsilci sunum işlemek için sağlamak ve animasyonlar kapatmak gerekir. Bu 'Özel Geçişler Görünümü Denetleyicileri' da kendi geçiş nasıl kapsayan 2013 https://developer.apple.com/wwdc/videos/?id=218 WWDC laflar temsilci. Kullanarak gösterilmiştir

İOS7 yukarıdaki sorun için çözüm görebilirsiniz: https://github.com/hightech/iOS-7-Custom-ModalViewController-Transitions

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • sinumatic

    sinumatic

    19 Aralık 2006