I am using the UISplitViewController
on ARC
, but it seems to crash after several rotation events:
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
Also, when I launch the application, I get this error:
Splitview controller <PUCSplitViewController: 0x36c290> is expected to have a master view controller before its used!
What am I missing? I installed it very similar to the example project that Apple provided.
Sometimes when switching the detailed view, sometimes it crashes:
- (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 present. if (popoverController != nil) { [popoverController dismissPopoverAnimated:YES]; } }//end
This is how I create a UISplitViewController
in applicationDidFinishLoading
:
PUCSplitViewController *splitPUC = [[PUCSplitViewController alloc] init]; self.mainSplitViewController = splitPUC; [self.window addSubview:self.mainSplitViewController.view]; [self.window makeKeyAndVisible];
Ideas?
source share