我認爲委託模式是解決您的問題的最佳方案。
有在這種情況下3個ViewControllers:
- ShoppingCartViewController
- CategoryViewController
- ProductViewController
ShoppingCartViewController得到類別從CategoryViewController。
ShoppingCartViewController從ProductViewController獲取產品。
解決方案:
- 創建協議
CategoryViewControllerDelegate
和ProductViewControllerDelegate
。
CategoryViewControllerDelegate
@protocol CategoryViewControllerDelegate <NSObject>
...
- (void)categoryViewController:(CategoryViewController *)categoryViewController didSelectCategoryAtIndex:(int)index;
...
@end
ProductViewControllerDelegate
@protocol ProductViewControllerDelegate <NSObject>
...
- (void)productViewController:(ProductViewController *)productViewController didSelectCategoryAtIndex:(int)index;
...
@end
在ShoppingCartViewController實施方案,並顯示的UINavigationController與CategoryViewController模式爲rootViewController
。
從categoryViewController:didSelectCategoryAtIndex:
中獲取所選類別並將productViewController推送至navigationController。
推productViewController到navigationController
ProductViewController *productViewController = [ProductViewController new];
productViewController.delegate = self;
[categoryViewController.navigationViewController pushViewController:productViewController animated:YES];
有你在ShoppingCartViewController兩個類別和產品。
我試着搜索過去2天這個問題的整個stackoverflow已經但我找不到和回答.. :) – acecapades
我有這個人一樣的問題(http://stackoverflow.com/questions/7955309/從嵌套到導航堆棧的委派),但沒有人回答他。 – acecapades
我想你可以使用NSUserdefaults – Rohan