2011-05-27 25 views
6

मेरे पास मेरे मुख्य मेनू पर एक नियमित UIButton है जो वर्तमान में UIViewController लॉन्च करता है; - यकीनन के रूप मेंUIDocumentInteractionController बाहर निकलने पर क्रैशिंग

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 

    documentPath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"pdf"]; 
    NSURL *targetURL = [NSURL fileURLWithPath:documentPath]; 

    document = [UIDocumentInteractionController interactionControllerWithURL: targetURL]; 
    document.delegate = self; 
    [document retain]; 

    return self; 
} 

-(UIViewController *)documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller 
{ 
    return self; 
} 

-(void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller 
{ 
    [document autorelease]; 
} 

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [document presentPreviewAnimated: YES]; // ** CRASH ** 
} 

-(void)viewDidUnload 
{ 
    [super viewDidUnload]; 
} 

-(void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
} 

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

-(void)dealloc 
{ 
    [super dealloc]; 
} 

मेरे pdf फ़ाइल लोड अपेक्षा के अनुरूप है, लेकिन जब मैं "किया" बटन दबाएं दस्तावेज़ बंद कर देता है और मैं अपने खाली UIViewController घूर छोड़ रहा हूँ: इसी .m फ़ाइल की सामग्री को इस प्रकार है अपेक्षित होना। लेकिन अगर मैंने नेविगेशन "बैक" बटन दबाया है तो ऐप मेरे व्यूडिडलोड विधि के अंदर एक खराब पहुंच त्रुटि के साथ दुर्घटनाग्रस्त हो जाता है, जहां उपस्थित होने के लिए कॉल प्रावधान एनिमेटेड पाया जाता है।

अगर कोई कृपया एक नज़र डालें, तो मैं सबसे आभारी रहूंगा।

+0

मुझे लगता है कि आपकी समस्या ऑटोरेलीज के साथ हो सकती है जो आप प्रतिनिधि में कर रहे हैं (साथ में initWithNib विधि में बनाए रखने के साथ)। – onnoweb

+0

@onnoweb इसे बनाए रखने के बिना यह निम्न के साथ दुर्घटनाग्रस्त हो जाएगा: रेखा 1: - [__ एनएससीएफटीपीपी वर्तमान पूर्वावलोकन अवलोकन:]: अज्ञात चयनकर्ता उदाहरण 0x1a32e0 पंक्ति 2: *** अपरिचित अपवाद के कारण ऐप को समाप्त करना 'एनएसआईएनवालिडअर्गमेंट एक्सेप्शन', कारण: '- [__NSCFType presentPreviewAnimated:]: अज्ञात चयनकर्ता उदाहरण 0x1a32e0 पर भेजा गया 'कारण मैंने बनाए रखा कारण था क्योंकि ऐप्पल हमें UIDocumentInteractionControllerDelegate प्रोटोकॉल संदर्भ में बताता है। – Luke

+0

हम्म ... मैं अपने ऐप्स में से एक में यूआईडी दस्तावेज़ का उपयोग करता हूं, एक बरकरार न रखें और कोई समस्या न हो। क्या होगा यदि आप UIDocument कोड को initWithNib से DidLoad देखने के लिए ले जाते हैं? – onnoweb

उत्तर

1

मैं सोच रहा हूँ कि क्या समस्या आप दृश्य निर्माण के दौरान ऐसा करने कि है (Btw, वहाँ कोई निब फ़ाइल जब इस दृश्य नियंत्रक बनाया जाता है। हाँ, अपने आप में यह गलत है) है। ताकि जब उपयोगकर्ता दस्तावेज़ पूर्वावलोकन बंद कर देता है, तो यह एक अपूर्ण रूप से गठित UIView पर वापस आ जाता है। तो शायद पहले दृश्य बनाएं और लोड करें और फिर UIDocument कोDidAppear से करें?

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