2013-04-03 12 views
7

मैं अपने आवेदन प्रतिनिधि में self.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; सेट कर रहा हूं ताकि मैं एक व्यू कंट्रोलर प्रस्तुत कर सकूं और दृश्य पारदर्शी हो (यह SO question देखें)।पारदर्शिता और एनीमेशन के साथ एक व्यू कंट्रोलर प्रस्तुत करना

यह बहुत अच्छा काम करता है, केवल टिप्पणी यह ​​है कि जब दृश्य नियंत्रक प्रस्तुत किया जाता है तो मैं एनिमेट करने में सक्षम नहीं हूं। किसी को भी काम करने के लिए यह मिल गया है? यदि नहीं, तो मेरे पास अन्य विकल्प क्या हैं?

जो दृश्य नियंत्रक मैं प्रस्तुत कर रहा हूं वह एक "walkthrough" है जिसमें UIScrollView और UIPageControl शामिल हैं जो इंटरफ़ेस पर "होवर" करने के लिए माना जाता है ताकि आप किनारों पर थोड़ा सा पृष्ठभूमि देख सकें।

उत्तर

9

मैं यह कर समाप्त हो गया:

AppDelegate *appDelegate = [AppDelegate sharedAppDelegate]; 

// Set the root VC modal presentation style 
appDelegate.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; 

WalkthroughViewController *walkthroughVC = [[WalkthroughViewController alloc] initWithNibName:nil bundle:nil]; 

[self presentViewController:walkthroughVC animated:NO completion:nil]; 

// Manually animate the view 
walkthroughVC.view.alpha = 0; 
[UIView animateWithDuration:0.5 animations:^{ 
     walkthroughVC.view.alpha = 1; 
}]; 

// Reset root VC modal presentation style 
appDelegate.window.rootViewController.modalPresentationStyle = UIModalPresentationFullScreen; 
+0

यह मेरे लिए भी उपयोगी है जब मैं ऐपडिलेगेट से वापस कॉल कर रहा हूं (उदाहरण के लिए ट्विटर प्रमाणीकरण कॉलबैक), और पारदर्शी दृश्य नियंत्रक प्रस्तुत करना। – morph85

0

आप बेस व्यू कंट्रोलर में मौजूद एक रोकथाम दृश्य का उपयोग कर सकते हैं। एक मोडल पेश करने के बजाय, एक मॉडल प्रस्तुति अनुकरण करने के लिए रोकथाम की स्थिति को एनिमेट करें।

उदाहरण के लिए ...

TransparentViewController *viewController = [[TransparentViewController alloc] init]; 
viewController.view.frame = CGRectMake(0, 480, 320, 480); 
self.containmnetView = viewController.view; 

ऐसा करने को पेश करने के लिए:

[UIView animateWithDuration:0.5f animations:^{ 
    self.containmentView.frame = CGRectMake(0, 0, 320, 480); 
}]; 

मुझे आशा है कि इस मदद करता है।

+0

हम्म आप धागा मैं करने के लिए बात कर रहे थे देखा? –

+0

आह मैं अब समझता हूं, मेरा जवाब संपादित किया। उम्मीद है की यह मदद करेगा। –

संबंधित मुद्दे