2014-06-11 10 views
7

में एक अर्द्ध पारदर्शी (आधे कटौती) ViewController पेश करने के लिए वहाँ इस विधि के लिए कोई समस्या नहीं है:कैसे आईओएस 7 में आईओएस 8

_rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; 
[_rootViewController presentViewController:self animated:NO completion:nil]; 

लेकिन iOS 8 में यह nothing.How किया इसे हल करने की? क्या यह आईओएस 8 के लिए एक बग है?

उत्तर

3

नोट करें कि यह कामकाज xcode6_beta7 पर आवश्यक था। सबसे आखिरी xcode6 में UIModalPresentationOver * शैलियों को ठीक किया गया है। तो, मैं उन्हें सिर्फ myModalViewController.modalPresentationStyle को असाइन कर रहा हूं और अब यह ठीक काम करता है।

अंत में यह iOS 8 में काम किया जाता पढ़ने UIPresentationController help और this post

appDelegate.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; 
MyModalController *myModalController = [[MyModalController alloc] initWithNibName:@"MyModalController" bundle:nil]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myModalController]; 
navController.modalPresentationStyle = UIModalPresentationCustom; 
navController.transitioningDelegate = myModalController; 

[self.navigationController presentViewController:navController animated:YES completion:nil]; 

आप मोडल दृश्य नियंत्रक बना सकते हैं के बाद UIViewControllerTransitioningDelegate

@interface MyModalController : UIViewController <UIViewControllerTransitioningDelegate> 

से विरासत और presentationControllerForPresentedViewController ओवरराइड: ...

-(UIPresentationController *)presentationControllerForPresentedViewController:(UIViewController *)presented presentingViewController:(UIViewController *)presenting sourceViewController:(UIViewController *)source 
{ 
    if (presented == self) { 
     return [[TransparentPresentationController alloc] initWithPresentedViewController:presented presentingViewController:presenting]; 
    } else { 
     return nil; 
    } 
} 

TransparentPresentationController का एक उदाहरण है जो

@interface TransparentPresentationController : UIPresentationController 

UIPresentationController

से विरासत और ओवरराइड करता है shouldRemovePresentersView

- (BOOL) shouldRemovePresentersView { 
    return NO; 
} 
+0

मैं एक और भावना में यह लिख: – SuperHappy

+0

मैं दो दृश्यों में यह लिख: ViewController में: - (IBAction) वर्तमान: (आईडी) इस { // दृश्य दो SecondViewController * नियंत्रक = [[SecondViewController alloc] इस में]; [नियंत्रक उपस्थित]; } एसेंस के लिए दो :-(शून्य) वर्तमान { UIViewController * root = [[[[UIAplplication sharedAplication] प्रतिनिधि] विंडो] rootViewController]; [स्वयं सेट ट्रांसमिशनिंग डिलीगेट: self.transitionController]; self.modalPresentationStyle = UIModalPresentationCustom; [रूट वर्तमान दृश्य नियंत्रक: स्वयं एनिमेटेड: हाँ पूर्णता: शून्य]; } लेकिन उसने प्रतिनिधि विधि नहीं की.क्यों? तुम्हारा सही है। – SuperHappy

+0

यह काम करता है। बहुत - बहुत धन्यवाद! – echo

13

मेरा जवाब अधिक सरल है कोड के नीचे, लौटने। यह आईओएस 8 (एक्सकोड 6 जीएम बीज) में काम करता है।

HogeViewController *vc = [[HogeViewController alloc] init]; 
vc.modalPresentationStyle = UIModalPresentationOverFullScreen; 
[self presentViewController:vc animated:NO completion:nil]; 
+1

लौटाता है यदि आप वीसी व्यू में अपना ऐप घुमाते हैं तो क्या हुआ? मेरे ऐप में यह घुमाता है जब विधि - (BOOL) को { वापस नहीं करना चाहिए; } – SuperHappy

+0

6 समाधान पढ़ें ... कोई भी काम नहीं किया लेकिन यह। बिग गग – braden

+0

मैं आपको अपना जीवन दे रहा हूं –