Re: iOS: multiple view controllers, one nib?
Re: iOS: multiple view controllers, one nib?
- Subject: Re: iOS: multiple view controllers, one nib?
- From: Eeyore <email@hidden>
- Date: Wed, 18 May 2011 13:04:30 -0700
I had a similar issue in my code and am unsure if my solution is correct. So if I'm doing this wrong, let me know.
My strategy was to associated each custom view (MWView subclass of UITextField) with a handler (MWHandler subclass of NSObject<UITextFieldDelegate>). The MWHandler is a class whose interface and implementation reside inside the MWView's implementation file, so the MWView appears to be self-contained. The MWHandler holds pointers to the MWView's subviews that the MWHandler will need to update. Controls inside the MWView that should trigger actions are set up to notify the MWHandler (with addTarget:action:forControlEvents:). You need to watch out for retain cycles (where the MWHandler retains a pointer to the MWView which retains a pointer to the MWHandler).
Code available on request (unless people tell me I've done it wrong),
Aaron
On May 18, 2011, at 12:32 PM, Nathan Sims wrote:
> Hmm, but then how would each custom class communicate with the view elements? NSNotifications?
>
> On May 18, 2011, at 12:27 PM, Eric E. Dolecki wrote:
>
>> I don't think so but you could always associate a custom Class with each of the UIViews to tuck most of the UIView specific code away from the view controller's code.
>>
>>
>> Google Voice: (508) 656-0622
>> Twitter: eric_dolecki XBoxLive: edolecki PSN: eric_dolecki
>> http://blog.ericd.net
>>
>>
>>
>> On Wed, May 18, 2011 at 3:19 PM, Nathan Sims <email@hidden> wrote:
>> Okay, but won't that make for one mega-complex view controller?
>>
>> On May 18, 2011, at 11:58 AM, Luke the Hiesterman wrote:
>>
>>> The IB concerns aside, attempting to build your own "more than one view controller on the screen" solution is currently fraught with peril, and something you'll probably get wrong. The window expects to have a single rootViewController to handle rotations and such. You're probably better off having a single view controller and each of your quad views should just be regular UIViews managed by the one view controller. And, if you did that, all your views would naturally be built in the one nib that defines your view controller :)
>>>
>>> Luke
>>>
>>> On May 18, 2011, at 11:53 AM, Nathan Sims wrote:
>>>
>>>> I'm writing an iPad app that has its main screen subdivided into 4 equal regions, each with a UIView, all defined in one IB nib. I have a dedicated view controller class for each view. When I instantiate the view controller class for each quadrant's view with -initWithNibName:bundle:, I have to specify the same nib name for each:
>>>>
>>>> quad1VC = [[Quad1ViewController alloc] initWithNibName:@"QuadViewiPad" bundle:nil];
>>>> quad2VC = [[Quad2ViewController alloc] initWithNibName:@"QuadViewiPad" bundle:nil];
>>>> quad3VC = [[Quad3ViewController alloc] initWithNibName:@"QuadViewiPad" bundle:nil];
>>>> quad4VC = [[Quad4ViewController alloc] initWithNibName:@"QuadViewiPad" bundle:nil];
>>>>
>>>> Will this properly connect each quadrant's view with the corresponding view controller, or should I have just one view controller for all 4 views?
>>>>
>>>>
>>>> _______________________________________________
>>>>
>>>> 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
>>>
>>
>> _______________________________________________
>>
>> 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
>>
>
> _______________________________________________
>
> 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
>
_______________________________________________
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