UIViewController
Alt UIViewController
görünüm / modun şeffaf olması ve alt görünüme eklenen bileşenlerin görünür olması gibi başka bir görünümün üstünde bir alt görünüm / mod olarak bir görünüm var . Sorun var alt görünümü yerine clearColor için siyah arka plan gösterir olmasıdır. UIView
Siyah bir arka plan değil bir clearColor olarak yapmaya çalışıyorum . Bunun neyin yanlış olduğunu bilen var mı? 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ı çözdüm . Hem iPhone hem de iPad için çok iyi çalışıyor. Siyah arka plan olmadan Modal View Controller sadece clearColor / şeffaf. Değişiklikten gerektiğini tek şey yerini ise UIModalPresentationFullScreen
hiç UIModalPresentationCurrentContext
. 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: Eğer bir kullanıyorsanız modalPresentationStyle
özelliği navigationController
:
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ün iOS 7'de çalışmadığıdır. İyi haber şu ki, iOS7 için sorunu çözdüm! Birinden yardım istedim ve işte şöyle dedi:
Bir görünüm denetleyicisini kalıcı olarak sunarken iOS, altındaki görünüm denetleyicilerini sunulduğu süre boyunca görünüm hiyerarşisinden kaldırır. Modal olarak sunulan görünüm denetleyicinizin görünümü şeffaf olsa da, altında siyah olan uygulama penceresi dışında hiçbir şey yoktur. iOS 7 UIModalPresentationCustom
, iOS'un sunulan görünüm denetleyicisinin altındaki görünümleri kaldırmamasına neden olan yeni bir kalıcı sunum stili tanıttı . Ancak, bu kalıcı sunum stilini kullanmak için, sunuyu işlemek ve animasyonları kapatmak için kendi geçiş temsilcinizi sağlamanız gerekir. Bu, WWDC 2013 https://developer.apple.com/wwdc/videos/?id=218 adresindeki 'Görünüm Denetleyicilerini Kullanan Özel Geçişler' konuşmasında özetlenmiştir. kendi geçiş temsilcinizin nasıl uygulanacağını kapsayan .
Yukarıdaki sorun için çözümümü iOS7'de görebilirsiniz: https://github.com/hightech/iOS-7-Custom-ModalViewController-Transitions
modalViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
sorunu çözecek