質問

ここで私のproductscontroller.h

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

と私は私の実装では、このようなサブビューとしてリストとGridViewのを追加しています。

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

私はこのようProductListViewController.mからdetailviewコントローラをプッシュしようとしたときに

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

productDetailViewController.productIndexPath = indexPath;

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

それはちょうど、仕事、そして私のチェック[self.navigationController]は、それがnilだっありません 今、どのようにこの問題に対処します。私はより明確にするために、いくつかのより多くのコードと詳細を与えるために準備ができています。感謝

役に立ちましたか?

解決 3

私はこの問題の回避策を見つけました。 今私がやっている何が、私は次のビューをプッシュするこの場合のProductsControllerと書かれた方法で親コントローラの参照を渡しています。この次、今私はこのような次のビューをプッシュする親メソッドを呼び出しています [親pushNextview]。 これまでのところ、それは罰金を動作しますが、これは私が望んでやっての良い方法であると思います。

他のヒント

あなたはナビゲーションコントローラを作成していますか? (おそらくあなたのアプリケーションのデリゲートで)いくつかの時点で、あなたはこのような何かを持っている必要があります:

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

そして、あなたの窓にサブビューとしてからNavControllerのビューを追加します。

他の事はあなたが1画面分のあまりに多くのビューコントローラを使用しているように見えるということです。 Appleは一つだけ画面あたりを推奨しています。

私は最近、同じ問題を抱えていました! viewWillAppearでのViewController:私は([YES self.navigationController popViewControllerAnimated]): "poped" のViewControllerの方法。私はこのコードを削除し、同じviewDidAppearのコードを挿入して:!方法を、それが働いた。

私は昨日同様の問題に遭遇します:

Tab Bar View - Table View - View

テーブルビューコントローラでは、私は「詳細ビュー」コントローラをプッシュしたかったが、[self navigationController]は、ここnilました。ソリューションは、このような構成に行きました。

Tab Bar View - Navigation View - Table View - View

追加のナビゲーション・コントローラと、[self navigationController]は現在テーブルビューコントローラで働いています。

navigationControllerはつねにnilである理由

私はちょうど見つけました。ビューのあなたの全シリーズは、UINavigationControllerに含まれるべきです。あなたの階層の最初のビューがあなたのrootViewControllerされなければならないことをこれが意味。 bpapasコードは動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top