What's your trigger for the segue? Have you set it up in IB so that a select on 
the table cell triggers it automagically? 

If so then no you have probably lost control of didSelect...

So you have two choices. Either do the second thing I said, find the sending 
tableViewController, get its selected index path in the prepareForSegue: call 
and then get your object there, or don't bind the segue direct to the 
tableview, just make a segue (named) between the two view controllers. Nothing 
will trigger that, only segues starting from user interface elements like 
buttons trigger theselves. (to do this I usually drag from the UIVC yellow box 
icon to the second VC). You should then get your didSelect,... call and you can 
call the performSegue: yourself. 

There's probably about another 4 ways to skin that particular cat, I've found 
storyboards and segues to be quite flexible, so flexible sometimes they just 
fall off! 



On Apr 2, 2012, at 7:15 PM, Rick Mann wrote:

> Thanks for the quick response.
> 
> I think I'm okay with sending stuff through the sender parameter, although I 
> do agree it's a bit ugly.
> 
> Problem is, my didSelectRowAtIndexPath isn't getting called... :-( The 
> delegate is set correctly, so I'm assuming iOS doesn't call it in the 
> presence of segues? It IS calling prepareSegue...
> 
> -- 
> Rick
> 
> On Apr 2, 2012, at 4:10 , Roland King wrote:
> 
>> in -didSelectRowAtIndexPath you get the object then you call 
>> performSegue:withIdentifer:sender with the object you just got as the 
>> sender. 
>> 
>> in -prepareForSegue you have the destination view controller from the segue 
>> object and you have the 'object' you used as sender, the object from your 
>> table. Set that object into your destination view controller and you are 
>> done. 
>> 
>> Sender is a bit of a bad choice for that parameter I think, you can see why 
>> it's called that because in the case of a normal button type segue it is the 
>> button you pressed so it's a sender, but if you use performSegue:: yourself 
>> you can send anything you like and pick it back up in the prepareForSegue 
>> method. 
>> 
>> I suppose alternatively you could use the master table as your 'sender', get 
>> the indexPathForSelectedRow and use the master table's datasource to look 
>> that up in the prepareForSegue method, but .. why bother, it's so easy the 
>> other way. 
>> 
>> On Apr 2, 2012, at 6:57 PM, Rick Mann wrote:
>> 
>>> I have a simple storyboard app with a push segue from a master table to a 
>>> detail controller. In the past, I'd implement -didSelectRowAtIndexPath, get 
>>> the object for that row, create the detail view controller, assign the 
>>> object to it, and push it.
>>> 
>>> Now I don't really see a nice way to do that without an ivar in the master 
>>> view controller. I can either override prepareForSegue, in which case I 
>>> won't have the index path available, or call performSegue, in which case I 
>>> won't have the destination view controller available.
>>> 
>>> Am I missing something, or must I store the object in an ivar in one, and 
>>> get at it in the other?
>>> 
>>> TIA,
>>> Rick
>>> 
>>> 
>>> _______________________________________________
>>> 
>>> 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/rols%40rols.org
>>> 
>>> This email sent to r...@rols.org
>> 
> 


_______________________________________________

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