I have a class design issue I was hoping someone could help me out with. 

I'm currently developing an iOS app that relies heavily on a remote API for all 
of its data. Most data is requested in viewDidLoad.

The availability and format of data can change, and in response to that I need 
to implement three different designs depending on how much data I have access 
to: the normal design, a data not found design and a partial data design. I'm 
trying to declare as much as possible in xib files.

Right now I have one 'master' view controller, which when all things go 
according to plan, presents a view for all of the data. In cases where the data 
is not available, it instantiates an "inner view" controller and assigns its 
view to self.view:


    if ([analysis length] == 0) {


        hasReview = NO;


        UnreviewedSPP* unreviewedSPPView = [[UnreviewedSPP alloc] init];


        unreviewedSPPView.ProductName = self.productName;


        unreviewedSPPView.SdcId = self.sdcId;


        unreviewedSPPView.Delegate = self;


        NSArray* newViews = [[NSBundle mainBundle] 
loadNibNamed:@"UnreviewedSPP" owner:unreviewedSPPView options:nil];


        self.view = [newViews objectAtIndex:0];


        return;


    }



This works pretty well, except for that fact that I cannot seem to push any new 
views onto the navigationController stack from the inner view (using a custom 
button that can execute a block):


        [priceButton handleControlEvent:UIControlEventTouchUpInside withBlock:^{


            WebViewController* wv = [[[WebViewController alloc] 
initWithNibName:@"WebViewController" bundle:nil] autorelease];


            wv.url = offerURL;


            [Delegate performSelector:@selector(pushViewControllerFromSubview:) 
withObject:wv];


        }];



I've tried using a delegate pattern as well as assigning the outer view 
controller's navigationcontroller as a property to the inner view. Neither 
works.

This whole thing feels rather hackish, and I'm sure there's something by design 
in the framework that stops this. Any thoughts?

-- 
James West
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to