2012-03-13 13 views
6

का उपयोग कर रहा ARC पर एक UISplitViewController उपयोग कर रहा हूँ, लेकिन यह कुछ रोटेशन घटनाओं के बाद दुर्घटनाग्रस्त होने लगता है:UISplitViewController EXC_BAD_ACCESS रोटेशन पर एआरसी

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x80069f69 
Crashed Thread: 0 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libobjc.A.dylib     0x32461f78 objc_msgSend + 16 
1 UIKit       0x3588b280 -[UISplitViewController _calculateDelegateHiddenMasterOrientations] + 52 
2 UIKit       0x3588cca8 -[UISplitViewController setViewControllers:] + 1344 
3 PUC        0x000d0a42 0x1000 + 850498 
4 UIKit       0x35644ade -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 938 
5 UIKit       0x356be7a4 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 152 

इसके अलावा, जब मैं अनुप्रयोग शुरू, मैं इस त्रुटि मिलती है:

Splitview controller <PUCSplitViewController: 0x36c290> is expected to have a master view controller before its used! 

मुझे क्या याद आया है? मैंने इसे उदाहरण प्रोजेक्ट के समान स्थापित किया है जो ऐप्पल प्रदान करता है।

जब विवरण दृश्य स्विचन इसके अलावा कभी कभी दुर्घटनाग्रस्त:

PUCSplitViewController *splitPUC = [[PUCSplitViewController alloc] init]; 
self.mainSplitViewController = splitPUC; 
[self.window addSubview:self.mainSplitViewController.view]; 
[self.window makeKeyAndVisible]; 

विचार:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    // Clicked Asset 
    Asset *asset = [items objectAtIndex:indexPath.row]; 

    UIViewController *detailViewController = nil; 

    // See what asset we are on 
    if ([asset.title isEqualToString:@"News"]) { 
     News2 *news = [[News2 alloc] initWithStyle:UITableViewStyleGrouped]; 
     UINavigationController *newsNav = [[UINavigationController alloc] initWithRootViewController:news]; 
     detailViewController = newsNav; 
    } else if ([asset.title isEqualToString:@"Photos"]) { 
     PhotosiPad *photos = [[PhotosiPad alloc] init]; 
     UINavigationController *photosNav = [[UINavigationController alloc] initWithRootViewController:photos]; 
     detailViewController = photosNav; 
    } 

    // Update the split view 
    [PUCAppDelegate instance].mainSplitViewController.viewControllers = [NSArray arrayWithObjects:self.navigationController, detailViewController, nil]; 

    // Dismiss the popover if it's present. 
    if (popoverController != nil) { 
     [popoverController dismissPopoverAnimated:YES]; 
    } 

}//end 

यहाँ मैं कैसे UISplitViewControllerapplicationDidFinishLoading में बना रहा है?

+0

अपना आवेदन पोस्ट करेंडिफिनिश लोडिंग कोड। – fbernardo

+0

धन्यवाद, बस इसे जोड़ा गया। –

+0

तो ऐप शुरू होने पर आपके splitviewcontroller में व्यू कंट्रोलर नहीं हैं? क्रैशलॉग द्वारा मैं शर्त लगाता हूं कि uisplitviewcontrolller प्रतिनिधि जारी किया गया था। कृपया लाश का उपयोग करने का प्रयास करें। – fbernardo

उत्तर

6

is expected to have a master view controller before its used! 

त्रुटि के लिए

,

आप प्रतिनिधि सेट करने के लिए के बाद आप splitviewcontroller के लिए दृश्य नियंत्रक सेट की जरूरत है।

Use Your Loaf blog from April 6th, 2012 देखें (नहीं, यह मेरा नहीं है)।

+0

धन्यवाद, मैं एक ही समस्या पर ठोकर खाई और मुद्दा यह था कि मैं प्रतिनिधि को अपने नए विवरण दृश्य नियंत्रकों में स्थापित नहीं कर रहा था। आपके जवाब ने रास्ता तय किया ... –

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

  • कोई संबंधित समस्या नहीं^_^