【发布时间】:2014-04-08 13:55:14
【问题描述】:
我正在构建一个应用程序,其中有 3 个 ViewController。 我还创建了自定义导航控制器。
- A-ViewController -> 这包含 2 个按钮,第一个按钮用于打开 B-ViewController,第二个按钮用于 C-ViewController。 从第一个按钮开始,我将 pushviewcontroller 用于 B-ViewController,这意味着 B-ViewController 是从 A-ViewController 推送的。
从第二个按钮 C-ViewController 使用 presentviewcontroller 呈现。
现在在 B 和 C ViewControllers 中按下返回按钮时,我必须在 B-ViewController 中使用弹出视图控制器并在 C-ViewController 中关闭。
目前我知道这些页面,但应该有一个通用的解决方案。 有什么方法可以识别当前导航控制器是被推送还是被弹出。
因为有些页面可以推送或呈现,但我不想设置任何布尔变量。我需要苹果的支持。
NSArray *arrViewControllers = [[AppDelegate sharedInstance].navigationController viewControllers];
NSLog(@"[arrViewControllers count] = %d",[arrViewControllers count]);
我正在使用上面的代码来获取堆栈中的视图控制器列表。 但我无法确定它是被推送还是呈现。 有人可以帮我吗?
【问题讨论】:
标签: ios iphone objective-c cocoa-touch uiviewcontroller