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.

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

_______________________________________________

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

Reply via email to