views:

1412

answers:

3

here is my productscontroller.h

ProductListViewController *productListViewController;
ProductGridViewController *productGridViewController;
UIButton *flipIndicatorButton;  

and i am adding list and gridview as a subview like this in my implementation

ProductListViewController *listController = [[ProductListViewController alloc] initWithNibName:@"ProductListView" bundle:nil];
self.productListViewController = listController;
self.productListViewController.CurrentSale = CurrentSale;
[self.view insertSubview:listController.view atIndex:0];

but in when i tried to push detailview controller from ProductListViewController.m like this

ProductDetailViewController *productDetailViewController = [[ProductDetailViewController alloc] init];

productDetailViewController.productIndexPath = indexPath;

[self.navigationController pushViewController:productDetailViewController animated:YES];

it just does not work, then i check [self.navigationController] , it was nil, now how to deal with this problem. i am ready to give some more code and detail to make more clear. thanks

+2  A: 

Where are you creating the Navigation Controller? At some point (probably in your App Delegate) you have to have something like this:

ProductsController *productsController = // create ProductsController
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:productsController];

And then add the navController's view as a subview to your window.

The other thing is that you appear to be using too many View Controllers for one screen. Apple recommends only one per screen.

bpapa
thanks bpapa, i am using only one Controller per screen, its just that i cant make view hierarchy in here.i have tabbar, and i have make first tabbar as Navigation in my Mainwindow.xib, and i am creating ProductController in BrandList controller that is my first screen , not app delegate. is this clear.if not let me know how i can make it more clear.
Nnp
i follow this example for create subviews(i did same thing with minor change) http://developer.apple.com/iphone/library/samplecode/TheElements/index.html , hope this helps
Nnp
A: 

i found workaround for this problem. now what i am doing is i am passing ref of parent controller in this case ProductsController and written method to push next view. following this now i am calling parent method to push next view like this [parent pushNextview]; so far it works fine, hope this is good way of doing what i wanted to.

Nnp
A: 

I ran into a similar issue yesterday:

Tab Bar View - Table View - View

In the table view controller, I wanted to push the "detail view" controller, but [self navigationController] was nil here. The solution was to go to this arrangement:

Tab Bar View - Navigation View - Table View - View

With the additional navigation controller, [self navigationController] now worked in the table view controller.

Karsten Silz