2013-04-08 9 views
12

में है मैं दो UIViewController कक्षाएं, जहां FirstClass में मैं लॉग इन, जब उपयोगकर्ता बटन पर टैप करता, मैं SecondClass प्रदर्शित करेगा ... कि के लिए के लिए एक UIButton है है मैं किया है,प्रयास प्रगति

SecondClass *index = [[SecondClass alloc] init]; 
[self presentModalViewController:index animated:YES]; 

SecondClass में मैं एक लॉगआउट बटन, जो Firstclass पर रीडायरेक्ट करेगा है, उस के लिए मैं किया है,

[self dismissModalViewControllerAnimated:YES]; 

जब मैं SecondClass में लॉगआउट बटन दबाते हैं, मैं चेतावनी संदेश

**Attempt to dismiss from view controller <FirstClass: 0e39w88e160> while a presentation or dismiss is in progress!** 

क्या समस्या यहाँ है ..

उत्तर

2

कॉल इन पंक्तियों जहां लॉगआउट & फिर जांच मिलती है:

if (![[self modalViewController] isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
1

वहाँ कई चीजें हैं जो इस कारण हो सकता है कर रहे हैं, यहाँ कुछ विकल्प हैं:

  1. आप इस तरह के रूप में viewWillAppear ViewController तरीकों में से एक पर सुपर कॉल करने के लिए, viewWillAppear आदि UIViewController प्रलेखन देखने के लिए आप सुपर कॉल करनी होगी जब से परामर्श भूल गया।
  2. dismissModalViewControllerAnimated: विधि एक बार से अधिक बुलाया जा रहा है, यह अगर आप एक से अधिक बार UIButton करने के लिए एक लक्ष्य जोड़ा हो सकता है।

समस्या की बेहतर समझ प्राप्त करने के लिए कृपया दोनों दृश्य नियंत्रकों के कोड को पूरी तरह से पेस्ट करें।

27

जोड़ा दोनों iOS 6 और पूर्व IOS 6 जवाब:

आईओएस 5.0 और उच्चतर

जब आप लॉग आउट करें, ख़ारिज करने से पहले इस चेक जोड़ें:

if (![self.presentedViewController isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES completion:nil]; 
} 

आईओएस 4। एक्स और कम

ख़ारिज करने से पहले यह चेक करें:

if (![[self modalViewController] isBeingDismissed]) 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

presentedViewController और dismissViewControllerAnimated: पूरा होने: iOS 5.0 –

+1

धन्यवाद @PavelAlexeev से उपलब्ध हैं, मैं डॉक्स में सत्यापित और मेरा उत्तर अपडेट किया गया। –

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