Iphone 从堆栈加载UIViewController

Iphone 从堆栈加载UIViewController,iphone,ios,uiviewcontroller,presentmodalviewcontroller,Iphone,Ios,Uiviewcontroller,Presentmodalviewcontroller,我是iPhone应用程序开发新手。我对视图和视图控制器的概念非常困惑 我的问题如下: 我有一个UIViewController。出于本例的目的,我们将其称为A 从这里,我使用presentModalViewController加载另一个视图控制器B 在presentModalViewcontroller上,我按下另一个视图控制器C。我想从这个视图控制器加载第一个提到的视图控制器A。我读到这些视图是按堆栈排列的。但是我不知道怎么做 在这种情况下,如何加载相同的视图控制器A?在C上使用-[UIVie

我是iPhone应用程序开发新手。我对视图和视图控制器的概念非常困惑

我的问题如下:

我有一个
UIViewController
。出于本例的目的,我们将其称为A

从这里,我使用
presentModalViewController
加载另一个视图控制器B

presentModalViewcontroller
上,我按下另一个视图控制器C。我想从这个视图控制器加载第一个提到的视图控制器A。我读到这些视图是按堆栈排列的。但是我不知道怎么做


在这种情况下,如何加载相同的视图控制器A

C
上使用
-[UIViewController presentingViewController]
方法:

UIViewController *A = C.presentingViewController;
这将返回发送
presentModalViewController:animated:
的视图控制器。如果您想向
A
提供信息,我会选择委派,但上述方法也适用


如果您的问题是如何返回到
A
(即关闭模态视图控制器),请使用以下方法:

UIViewController *A = C.presentingViewController;
[A dismissModalViewControllerAnimated:YES];

我想说你需要弹出视图控制器C和B回到A。
如果你在B和C的顶部显示A,那么他们可以再次在顶部启动B,在你知道之前,你有一大堆重复的视图在彼此的顶部。

你需要使用
UINavigationController
来推送
UIViewControllers

,这正是我现在所处的情况。所以弹出B和C是这里唯一的解决方案。为了阻止你兜圈子,是的。B是presentmodalviewcontroller,C是viewcontroller。那么我的代码应该是什么样的呢?我解雇了presentmodalviewcontroller。景色很好。我的答案的第一部分说明了如何获取指向
a
的指针,以便您可以向它发送消息。这取决于您使用的Xcode版本。如果使用Xcode 4,则可以使用故事板-