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
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.
I had the same problem recently! I "poped" ([self.navigationController popViewControllerAnimated:YES]) the viewController in the viewWillAppear: method of the viewcontroller. So I just removed this code and inserted the same code in the viewDidAppear: method and it worked!
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.
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.
I just found out why the navigationController is always nil. Your whole series of views should be contained in a UINavigationController. This means that the first view in your hierarchy will have to be your rootViewController. bpapas code should work.