1

这是我的 productscontroller.h

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

我在我的实现中添加列表和网格视图作为这样的子视图

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,现在如何处理这个问题。我准备提供更多代码和细节以更清楚。谢谢

4

5 回答 5

2

您在哪里创建导航控制器?在某些时候(可能在你的 App Delegate 中)你必须有这样的东西:

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

然后将 navController 的视图作为子视图添加到您的窗口。

另一件事是您似乎在一个屏幕上使用了太多的视图控制器。Apple 建议每个屏幕只使用一个。

于 2009-12-31T03:26:04.430 回答
1

我最近遇到了同样的问题!我在 viewController 的 viewWillAppear: 方法中“弹出”([self.navigationController popViewControllerAnimated:YES])viewController。所以我只是删除了这段代码,并在 viewDidAppear: 方法中插入了相同的代码,它成功了!

于 2011-08-01T08:52:40.410 回答
0

我找到了解决这个问题的方法。现在我正在做的是在这种情况下传递父控制器的引用 ProductsController 和编写的方法来推送下一个视图。现在,我正在调用父方法来推送下一个视图,如下所示[父 pushNextview];到目前为止它工作正常,希望这是做我想做的事情的好方法。

于 2010-01-09T21:42:33.573 回答
0

我昨天遇到了类似的问题:

Tab Bar View - Table View - View

在表格视图控制器中,我想推动“详细视图”控制器,但[self navigationController]nil这里。解决方案是采用这种安排:

Tab Bar View - Navigation View - Table View - View

使用额外的导航控制器,[self navigationController]现在可以在表格视图控制器中使用。

于 2010-03-12T14:40:46.047 回答
0

我刚刚发现了为什么 navigationController 总是为零。您的整个视图系列应该包含在 UINavigationController 中。这意味着层次结构中的第一个视图必须是您的 rootViewController。bppas 代码应该可以工作。

于 2011-06-11T15:47:37.267 回答