> On Sep 23, 2014, at 11:19 AM, Herman Chan <herman...@gmail.com> wrote: > > Hi David, > > Yes, it was related to the PPRevealSideViewController, which I'll look into > to see if I can fix it. > > However, I don't know if that's the problem with my original problem. > > That warning for detached view controller has been there for awhile through > iOS 6 -> 7 and it has been fine for us and once it gets to iOS 8, we start > seeing crash logs that I post before.
iOS 8 has gotten quite a bit more picky about these things, so things that were just warnings before may be hard crashes now. Also given how early you are crashing inside of objc_msgSend, that would typically indicate that you have a bad object (since one of the first things objc_msgSend does is dereference the object). > > Here it is again: > > Thread : Crashed: com.apple.main-thread > 0 libobjc.A.dylib 0x34043f46 objc_msgSend + 5 > 1 UIKit 0x2a0f2739 -[UIPresentationController > runTransitionForCurrentState] + 444 > 2 UIKit 0x2a107a0b -[UIViewController > _presentViewController:presentationController:animationController:interactionController:completion:] > + 822 > 3 UIKit 0x2a10899f -[UIViewController > _presentViewController:withAnimationController:completion:] + 2850 > 4 UIKit 0x2a10a4ab __62-[UIViewController > presentViewController:animated:completion:]_block_invoke + 258 > 5 UIKit 0x29f07243 -[UIViewController > presentViewController:animated:completion:] + 194 > 6 MyApp 0x00136441 -[LeftMenuViewController > tableView:didSelectRowAtIndexPath:] (LeftMenuViewController.m:362) > 7 UIKit 0x29f3d7c7 -[UITableView > _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 918 > 8 UIKit 0x29fef0df -[UITableView > _userSelectRowAtPendingSelectionIndexPath:] + 194 > 9 UIKit 0x29ea11bd > _applyBlockToCFArrayCopiedToStack + 308 > 10 UIKit 0x29e1d10b _afterCACommitHandler + 458 > 11 CoreFoundation 0x269505cd > __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 20 > 12 CoreFoundation 0x2694dc8b __CFRunLoopDoObservers + 278 > 13 CoreFoundation 0x2694e093 __CFRunLoopRun + 914 > 14 CoreFoundation 0x2689c621 CFRunLoopRunSpecific + 476 > 15 CoreFoundation 0x2689c433 CFRunLoopRunInMode + 106 > 16 GraphicsServices 0x2dc4a0a9 GSEventRunModal + 136 > 17 UIKit 0x29e86809 UIApplicationMain + 1440 > 18 MyApp 0x000d9013 main (main.m:14) > > I have a feeling that it has something to do with the new addition of > UIPresentationController in iOS 8. The real problem is that I can't seem to > replicate this crash at all. > > My leading theory at the moment is that I am not setting > modalPresentationStyle on the controller who's presenting the new view > controller and somehow iOS 8 does not like it. > > Any help is appreciated. > > Herman > > > On 23 Sep 2014, at 14:04, David Duncan wrote: > >>> On Sep 23, 2014, at 10:45 AM, Herman Chan <herman...@gmail.com> wrote: >>> >>> Hi David, >>> >>> Here is my set up in term of view controllers. >>> >>> - (void) setUpTabbarController { >>> >>> self.tabBarController = [[MyTabbarViewController alloc] init]; >>> ViewController *v1 = [[HubActivityViewController alloc] initWithNibName:nil >>> bundle:nil]; >>> ViewController *v2 = [[CalendarContainerViewController alloc] >>> initWithNibName:nil bundle:nil]; >>> ViewController *v3 = [[HubTaskGroupsViewController alloc] init]; >>> >>> UINavigationController* nav1 = [[UINavigationController alloc] >>> initWithRootViewController:v1]; >>> UINavigationController* nav2 = [[UINavigationController alloc] >>> initWithRootViewController:v2]; >>> UINavigationController* nav3 = [[UINavigationController alloc] >>> initWithRootViewController:v3]; >>> >>> self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, >>> nav2, nav3, nil]; >>> nav1.delegate = self.tabBarController; >>> nav2.delegate = self.tabBarController; >>> nav3.delegate = self.tabBarController; >>> >>> self.revealSideViewController = [[PPRevealSideViewController alloc] >>> initWithRootViewController:self.tabBarController]; >>> [self.revealSideViewController >>> setDirectionsToShowBounce:PPRevealSideDirectionNone]; >>> [self.revealSideViewController >>> setPanInteractionsWhenClosed:PPRevealSideInteractionContentView | >>> PPRevealSideInteractionNavigationBar]; >>> [self.revealSideViewController setOption:PPRevealSideOptionsResizeSideView]; >>> >>> self.window.rootViewController = self.revealSideViewController; >>> >>> // set the modal presenting style, possible fix for crash on iOS 8 >>> if ([Util isRunningIOSEight]) { >>> self.window.rootViewController.modalPresentationStyle = >>> UIModalPresentationOverFullScreen; >>> } >>> } >>> >>> We use a library called "PPRevealSideViewController" >>> (https://github.com/ipup/PPRevealSideViewController/commits/master) to >>> provide a slide menu in our app. Whenever we call [self >>> presentViewController:] from on of the view controller inside the >>> tabbarcontroller (i.e.: v1), we get the detached view controller warning. >>> >>> Do you think the warning is related to the menu library or the way I set up >>> my tabbarcontroller? >> >> Simplest way to find out is to remove the PPRevealSideViewController view >> controller and see if the issues go away (or you can do this in a side >> project). >> >>> >>> Herman >>> >>> >>> On 23 Sep 2014, at 13:32, David Duncan wrote: >>> >>>>> On Sep 22, 2014, at 7:16 PM, Herman Chan <herman...@gmail.com> wrote: >>>>> >>>>> Hi Ben, >>>>> >>>>> I have both in my app, both presenting from rootVC and just plain >>>>> controller. I fish out the rootVC to get rid of warning like this >>>>> "Presenting view controllers on detached view controllers is discouraged”. >>>> >>>> So why do you have detached view controllers in the first place? >>>> >>>> Detached view controllers have been discouraged ever since it was possible >>>> to setup the parent-child relationship in the first place. I suspect that >>>> if you fix your detached view controllers that you will fix this issue too. >>>> >>>>> >>>>> I am seeing crash logs from both instance of presenting view controllers >>>>> (both from rootVC and not), so that's probably not the issue here. >>>>> >>>>> Herman >>>>> >>>>> On 22 Sep 2014, at 22:14, Ben Kennedy wrote: >>>>> >>>>>> On 22 Sep 2014, at 6:36 pm, Herman Chan <herman...@gmail.com> wrote: >>>>>> >>>>>>> GlobalSettingsViewController *c = [[GlobalSettingsViewController alloc] >>>>>>> initWithGroupDataSource:self.dataSource]; >>>>>>> navigationController = [[UINavigationController alloc] >>>>>>> initWithRootViewController:c]; >>>>>>> UIViewController *vc = [[[[UIApplication sharedApplication] delegate] >>>>>>> window] rootViewController]; >>>>>>> [vc presentViewController:navigationController animated:YES >>>>>>> completion:nil]; >>>>>> >>>>>> Is there a particular reason why you are fishing out the root view >>>>>> controller via the delegate singleton? Does it work properly if your >>>>>> LeftMenuViewController instance (the class which according to your trace >>>>>> is making the call) simply calls presentViewController on itself instead? >>>>>> >>>>>> b >>>>>> >>>>>> -- >>>>>> Ben Kennedy, chief magician >>>>>> Zygoat Creative Technical Services >>>>>> http://www.zygoat.ca >>>>> _______________________________________________ >>>>> >>>>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >>>>> >>>>> Please do not post admin requests or moderator comments to the list. >>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >>>>> >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com >>>>> >>>>> This email sent to david.dun...@apple.com >>>> >>>> -- >>>> David Duncan >> >> -- >> David Duncan -- David Duncan _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com