2009-04-07 9 views
5

मुझे: (आईडी) प्रेषक जोड़ने के बाद इस दिनचर्या से एक क्रैश हो रहा है, इसलिए मैं यह निर्धारित कर सकता हूं कि कौन सा बटन इसे बुलाया गया है। जब सादे पुराने टॉगल व्यू 3 के रूप में स्थापित किया जाता है तो यह पूरी तरह से काम करता है। क्रैश तब होता है जब विवरण दृश्य को docView पर वापस टॉगल किया जाता है।NSInvalidArgumentException

'NSInvalidArgumentException', reason: '*** -[RootViewController toggleView3]: unrecognized selector sent to instance 0x524a00' 2009-04-07 12:29:44.421 eTarot[11405:20b] Stack:

-(IBAction)toggleView3:(id)sender{ 


    if (detailViewController == nil) { 
     [self loadDetailViewController]; 
    } 

    UIView *docView = docViewController.view; 
    UIView *detailView = detailViewController.view; 

    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [UIView setAnimationTransition:([docView superview] ? UIViewAnimationTransitionFlipFromRight : UIViewAnimationTransitionFlipFromLeft) forView:self.view cache:YES]; 

    if ([docView superview] != nil) { 
     [detailViewController viewWillAppear:YES]; 
     [docViewController viewWillDisappear:YES]; 
     [docView removeFromSuperview]; 

     [self.view addSubview:detailView]; 
     [self.view insertSubview:detailNavigationBar aboveSubview:detailView]; 
     [docViewController viewDidDisappear:YES]; 
     [detailViewController viewDidAppear:YES]; 

    } else { 
     [docViewController viewWillAppear:YES]; 
     [detailViewController viewWillDisappear:YES]; 
     [detailView removeFromSuperview]; 
     [detailNavigationBar removeFromSuperview]; 
     [self.view addSubview:docView]; 
     [detailViewController viewDidDisappear:YES]; 
     [docViewController viewDidAppear:YES]; 
    } 
    [UIView commitAnimations]; 
} 
+0

क्या आप कोड को टॉगलव्यू 3 कह सकते हैं? – cobbal

उत्तर

13

किसी दृश्य को संदेश भेज रहे हैं toggleView3 जब चयनकर्ता का सही नाम toggleView3: है - जो है, एक कॉलन और तर्क के साथ। वे आपके जैसा दिख सकते हैं, लेकिन वे उद्देश्य-सी के लिए पूरी तरह से अलग तरीके हैं।

+0

धन्यवाद चक। जाहिर है, एक बार यह इंगित किया गया है :) – Alan

2

कि अपवाद का मतलब है आपके आवेदन के बिना toggleView3 बुला रहा है: इस तर्क कहीं। चूंकि आपकी नई विधि को तर्क की आवश्यकता है, यह एक ऐसी विधि को कॉल करने जैसा ही है जो कभी अस्तित्व में नहीं था।

यदि आप डीबगर में स्टैक ट्रेस देखते हैं तो यह बहुत स्पष्ट होना चाहिए कि यह कहां से आ रहा है। शायद निर्माण परिणामों में भी एक चेतावनी है।

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

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