का उपयोग कर रहा 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
यहाँ मैं कैसे UISplitViewController
applicationDidFinishLoading
में बना रहा है?
अपना आवेदन पोस्ट करेंडिफिनिश लोडिंग कोड। – fbernardo
धन्यवाद, बस इसे जोड़ा गया। –
तो ऐप शुरू होने पर आपके splitviewcontroller में व्यू कंट्रोलर नहीं हैं? क्रैशलॉग द्वारा मैं शर्त लगाता हूं कि uisplitviewcontrolller प्रतिनिधि जारी किया गया था। कृपया लाश का उपयोग करने का प्रयास करें। – fbernardo