Re: Master - Detail: How to get back?
Re: Master - Detail: How to get back?
- Subject: Re: Master - Detail: How to get back?
- From: Kyle Sluder <email@hidden>
- Date: Wed, 15 Apr 2015 11:52:28 -0500
On Wed, Apr 15, 2015, at 07:18 AM, Gerriet M. Denkmann wrote:
>
> While my iPhone can use the “DoSomethingAndGoBackToMasterView” button
> fine,
> the same button does nothing for iPad.
>
> Of course iPad does not need an unwinding segue - both master and detail
> view are always visible (at least in landscape orientation). But the
> “DoSomething” part is still needed.
>
> Currently the button has a Triggered Segue (used on iPhone) and a Sent
> Action - obviously ignored, because of the segue.
>
> So the idea: if the app starts on iPad, I could just clear the Triggered
> Segue and the Sent Action would be used.
> But how? UIBarButtonItem has nothing about segues.
Correct; you can't manipulate segue definitions at runtime.
>
> Can this be done? Or is there a better way to make my button work both
> for iPhone and iPad?
Well, my first question is: can you just put your work in the
implementation of the unwind selector? The unwind itself will be a no-op
if the split view controller is not collapsed, but the runtime should
still invoke your unwind selector. If it doesn't, that's a bug, and you
should file a Radar and send me the number.
But while I'm here, I figure I should share some little-known knowledge:
segues do not need to be attached to a control at all. A segue is
actually defined by its source and destination view controllers, not by
any controls that invoke it.
To create a "manual segue" (that is, one which must be invoked in code,
rather than by any button action):
1. In the Document Outline on the left side of the storyboard editor,
expand the Master and Detail scenes
2. Control-drag from the Detail scene's view controller to the Master
scene's Exit proxy.
3. Choose the unwind selector to create a manual unwind segue that isn't
attached to any specific control.
4. On the Properties Inspector for that newly-created segue, give it an
identifier.
5. Wire up your bar button item to a method that uses
-performSegueWithIdentifier:sender to trigger the unwind.
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden