Since iOS 8, custom presentations we write completely block events to the 
presenter. I assume Apple have done this because it’s the behaviour we’d mostly 
like. Besides, it matches Apple’s own presentations:

Alerts ignore taps outside of the alert
Action sheets treat a tap on the background area as equivalent to hitting cancel
Popovers treat taps outside the the popover as a cue to dismiss

There is an important exception here though: popovers offer the 
passthroughViews property, as a means to allow events through to certain 
specific views. How are Apple achieving this?

I have to admit I don’t actually know. But my hunch is they’re supplying a 
custom view as part of the presentation, that fills the container. It’s job is 
to override -hitTest:event: to return one of the passthrough views if 
appropriate. That would have the desired effect of allowing events through to 
those specific views.

I don’t know if that’s how it’s actually being done, or if it’s a good idea for 
you to do the same. Just a theory!

> On 29 Jan 2015, at 14:15, Mazzaroth M. <taomaili...@gmail.com> wrote:
> 
> I forgot to add the overridden methods:
> 
> - (CGRect)frameOfPresentedViewInContainerView
> {
>    CGRect presentedViewFrame = CGRectZero;
>    CGRect containerBounds = [[self containerView] bounds];
> 
>    presentedViewFrame.size = [self
> sizeForChildContentContainer:(UIViewController<UIContentContainer> *)[self
> presentedViewController]
> 
> withParentContainerSize:containerBounds.size];
> 
>    presentedViewFrame.origin.x = containerBounds.size.width -
> presentedViewFrame.size.width;
>    NSLog(@"presentedViewFrame: %@",
> NSStringFromCGRect(presentedViewFrame));
>    return presentedViewFrame;
> 
> }
> 
> 
> - (CGSize)sizeForChildContentContainer:(id <UIContentContainer>)container
> withParentContainerSize:(CGSize)parentSize
> {
>    return CGSizeMake(floorf(parentSize.width / 3.0),
>                      parentSize.height);
> }
> 
> 
> On Wed, Jan 28, 2015 at 7:20 PM, Mazzaroth M. <taomaili...@gmail.com> wrote:
> 
>> I want to have a custom `modal` appear over the Master portion of a
>> UISplitViewController. So far, I've managed to cobble together a
>> UIViewControllerTransitioningDelegate, a UIPresentationController subclass.
>> 
>>    chartSummaryNavigationController.transitioningDelegate =
>> _transitioningDelegate;
>>    [self presentViewController:chartSummaryNavigationController
>> animated:YES completion:NULL];
>> 
>> in the UIPresentationViewController subclass, I override
>> 
>> -frameOfPresentedViewInContainerView
>>    and
>> -sizeForChildContentContainer:withParentContainerSize:
>> 
>> so far. Just hoping to get it `working` and in
>> -sizeForChildContentContainer:withParentContainerSize: return a smaller
>> width than the landscape iPad. Voila, the modal does a standard
>> presentation transition from the bottom of the screen. However, tapping
>> anywhere around the presented modal results in no events, which is what I
>> actually want. In -frameOfPresentedViewInContainerView I noticed that
>> self.containerView.frame returns a frame the size of the entire iPad. Is
>> that why I get no events around the presentedViewController? If so, how do
>> I reduce the frame of self.containerView to match that of the presented
>> controller?
>> 
>> If that's not the problem, is there another way to allow tap events
>> outside a presented view controller?
>> 
>> Michael
>> 
>> 
> _______________________________________________
> 
> 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/mabdullah%40karelia.com
> 
> This email sent to mabdul...@karelia.com


_______________________________________________

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