2012-09-24 10 views
6

iOS 5 में इसे सही ढंग से चलाता है:त्रुटि 6

PinRequiredViewController *pinView = [[PinRequiredViewController alloc]initWithNibName:@"PinRequiredView" bundle:nil]; 

      UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:pinView]; 

      // show the navigation controller modally 
      navController.modalPresentationStyle = UIModalPresentationFormSheet; 
      navController.modalInPopover = NO; 
      navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

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

      navController.view.superview.frame = CGRectMake(0, 0, 250, 250); 

      navController.view.superview.center = self.view.window.center; 

लेकिन नहीं iOS6 में ठीक काम कर रहा, देखने के लिए, स्क्रीन में केंद्रित नहीं रहता दोनों पोर्ट्रेट और लैंडस्केप। कोई समाधान?

धन्यवाद !! :)

+0

मुझे एक ही समस्या है और इसे हल नहीं कर सकता। आईओएस से पहले ठीक काम करने के लिए प्रयुक्त 6. –

+0

@ Javi_576 यहां वास्तव में क्या समस्या है? प्रश्न जो "काम नहीं कर रहे" कहते हैं, इस मुद्दे का पूरी तरह से वर्णन नहीं हैं। क्या आप कह रहे हैं कि यह बिल्कुल मौजूद नहीं है? –

+1

नहीं, दृश्य इस कोड के साथ आईओएस 5 में केंद्रित है, लेकिन आईओएस 6 में नहीं। –

उत्तर

8

में जानबूझकर इस प्रतिबंधित मुझे लगता है कि अगर आप UIModalTransitionStyleFlipHorizontal संक्रमण शैली को दूर कर किसी अन्य संक्रमण शैलियों में से एक का उपयोग यह काम करेंगे।

ऐसा लगता है कि यह UIModalTransitionStyleFlipHorizontal के साथ एक बग है।

+0

धन्यवाद पुरुषों! यह एक बग है क्योंकि मैंने एक और 'UIModalTransitionStyle' का उपयोग किया और रन ठीक है! :) –

1

समस्या यह है कि आप पर्यवेक्षक के फ्रेम को जो कुछ भी चाहते हैं उसे सेट कर सकते हैं लेकिन मूल नहीं बदला जाएगा। यही कारण है कि यह केंद्रित नहीं रहता है।

ऐसा लगता है कि एप्पल iOS6

+0

उत्तर के लिए धन्यवाद! मुझे लगता था कि यह था ... –

3

पूरा होने का उपयोग करें: अपने presentViewController में:

[self presentViewController:navController animated:YES completion:^{ 
     navController.view.superview.bounds = CGRectMake(0, 0, 250, 250);}]; 

यह UIModalTransitionStyleFlipHorizontal के साथ काम कर देगा।

+2

यह सही दिशा में एक कदम है, लेकिन एनीमेशन पूर्ण होने तक मोडल एनीमेशन गलत आकार है। अंतिम परिणाम झटकेदार है। –

+2

आईओएस 6 पर navCon.view.superview।सीमाएं = CGRectMake (0, 0, kPopupsWidth, kPopupsHeight) वर्तमान के बाद व्यू कंट्रोलर: एनिमेटेड: समापन: काम करने के लिए उपयोग किया जाता है, लेकिन अब आईओएस 7 (बीटा 5) पर नहीं। दृश्य का आकार बदल गया है, लेकिन केंद्रित नहीं है ... पूरा होने पर काम करता है, लेकिन एक एनीमेशन बदसूरत नरक के रूप में! –

0

बस इसे देखने के बजाय DidAppear को देखने के बजाय DidLoad। और आप हल हो गए हैं!

1

मेरी समझ में UIModalTransitionStyleFlipHorizontal के साथ, केवल wayout पहला दृश्य एनीमेशन के बिना, उसके बाद अगली पंक्ति में यह नकारने और फिर एनिमेटेड साथ यह दिखा तुलना में पेश केंद्र बिंदु की स्थापना, के द्वारा होता है: हाँ। नीचे की तरह .....

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

CGPoint centerPoint = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2); 
navController.view.superview.center = centerPoint; 
[navController dismissModalViewControllerAnimated:NO]; 

navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController:navController animated:YES completion:nil]; 
1

मैं निम्नलिखित के साथ सफल रहा:

aboutViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
aboutViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

CGRect aboutSheetFrame = aboutViewController.view.frame; 
[self presentViewController:aboutViewController animated:YES completion:^{ 
     aboutViewController.view.superview.bounds = aboutSheetFrame; 
     }]; 
aboutViewController.view.superview.bounds = aboutSheetFrame; 

UIModalTransitionStyleFlipHorizontal का प्रयोग संक्रमण अब भी है ios 6.1 बीटा 2. aboutSheetFrame आकार हार्डकोड से बचने के लिए है पर छोटी गाड़ी।

0

iOS 7 इस कोशिश के लिए:

[self.navigationController presentViewController:navigationController animated:YES completion:^{ 
    //Make the modal bigger than normal 
    navigationController.view.superview.bounds = CGRectMake(0, 0, 700, 650); 
}]; 

एनीमेशन बदसूरत तो मैं इसे सुधारने के लिए एक एनीमेशन जोड़ने की सिफारिश करेंगे दिखेगा:

[self.navigationController presentViewController:navigationController animated:YES completion:^{ 
    [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 
     //Make the modal bigger than normal 
     navigationController.view.superview.bounds = CGRectMake(0, 0, 700, 650); 
    } completion:^(BOOL finished) { 
    }]; 
}]; 

भी याद रखें कि आप फ्रेम पर सेट करना होगा नेविगेशन के नियंत्रक दृश्य में देखें सही आकार के लिए सामग्री के लिए DidAppear।