2012-08-09 11 views
5

मैं दृश्य नियंत्रक पूर्ण स्क्रीन अर्ध-पारदर्शी रूप से प्रस्तुत करना चाहता हूं ताकि मैं अभी भी इसके नीचे दृश्य देख सकूं। निम्न कोड नया दृश्य नियंत्रक प्रस्तुत करता है, लेकिन यह वर्तमान को बदल देता है। मूल दृश्य नियंत्रक को दृश्यमान रखने का सबसे अच्छा तरीका क्या है? नए दृश्य नियंत्रक के दृश्य में अर्ध-पारदर्शी काला पृष्ठभूमि होगी।आईओएस - पारदर्शीता के साथ वर्तमान दृश्य नियंत्रक

NewViewController* newVC = [[NSClassFromString(@"NewViewController") alloc] initWithNibName:deviceNib bundle:nil]; 
newVC.modalPresentationStyle = UIModalPresentationFullScreen; 
newVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 


[self presentViewController:newVC animated:YES completion:NULL]; 

उत्तर

6

वर्तमान एक अर्द्ध पारदर्शी देखें, नहीं एक दृश्य नियंत्रक।

mySemiTransparentView.alpha = 0.0f; 
[self.view addSubview:mySemiTransparentView]; 

mySemiTransparentView आपका पूर्ण-स्क्रीन दृश्य है। आप इसे जगह में चेतन कर सकते हैं:

[UIView beginAnimations:@"fadeIn" context:nil]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationDuration:0.4f]; 
mySemiTransparentView.alpha = 0.5f; 
[UIView commitAnimations]; 
+0

सच है, लेकिन मैं व्यू कंट्रोलर का उपयोग करना चाहता हूं। – soleil

+0

आप अभी भी अपने UIViewController को alloc/init के माध्यम से तुरंत चालू कर सकते हैं, तो mySemiTransparentView केवल आपका ViewController.view – CSmith

+2

हो सकता है जब तक कि आप अपने semitransparent दृश्य पर सब कुछ नहीं चाहते हैं .5 अल्फा (बटन और ऐसे सहित), अल्फा सेट न करें देखें, क्योंकि यह सभी उपमहाद्वीपों के लिए तैयार है। आप पृष्ठभूमि दृश्य बनाने से बेहतर हैं जो पूरे स्क्रीन को लेता है जो .5 अल्फा है, और उसके बाद अपने बटन और उस पर लेयरिंग करता है। –

2

आप निम्नलिखित तरीके से अर्द्ध पारदर्शी मॉडल नियंत्रक पेश कर सकते हैं:

NewViewController* newVC = [[NSClassFromString(@"NewViewController") alloc] initWithNibName:deviceNib bundle:nil]; 

self.modalPresentationStyle = UIModalPresentationCurrentContext; 
newVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

[self presentViewController:newVC animated:YES completion:NULL]; 

सूचना यहाँ स्वयं के लिए निरंतर UIModalPresentationCurrentContext सेट करने के लिए है कि आप .modalPresentationStyle, न्यूवीसी। मॉडेल प्रस्तुति स्टाइल

इसके अलावा, जब आप उपयोग करते हैं UIModalTransitionStyleCrossDissolvenewVC.view के अल्फा संक्रमण के दौरान ओवरराइड कर दिया जाएगा, इसलिए यदि आप अर्द्ध पारदर्शी पृष्ठभूमि चाहते हैं आप के रूप में स्पष्ट newVC.view के पृष्ठभूमि रंग बनाए रखना और केवल जोड़ने के एक और UIView की आवश्यकता होगी यह सेमी-पारदर्शी पृष्ठभूमि के साथ सबव्यूव है

+0

'self.modalPresentationStyle = UIModalPresentationCurrentContext; 'या' newVC। modalPresentationStyle = UIModalPresentationCustom'and + 1 आपके उत्तर के दूसरे भाग के लिए भी। धन्यवाद –