1

开始一个新线程......关于同样的问题......我已经尝试了我从不同的帖子和论坛中得到的所有东西......对我来说没有一个工作......

我想做的是...

[self presentModalViewController:ViewControllerA animated:YES];//Working fine
//Inside viewControllerA call viewControllerB
[self presentModalViewController:ViewControllerB animated:YES];//Working fine
//Dismiss both the Controllers. and present View

C

我试过了。

  1. 在呈现 ViewControllerB 之前关闭 viewControllerA // 直接进入视图 C
  2. 在 viewControllerB 中关闭 viewControllerA // 没有结果。//DismissViewController 应该关闭所有堆栈.. 但对我不起作用所以我尝试了
  3. 取消 viewControllerB 中的两个 viewContrller // 仍然显示 viewContrllerA

OMG……好混乱……

4

2 回答 2

1

self您的代码不清楚(当它们可能引用不同的东西时,您使用了两次)。我假设你想要做的是(有效地)这个:

[viewController presentModalViewController:viewControllerA animated:YES];
// time passes...
[viewControllerA presentModalViewController:viewControllerB animated:YES];
// time passes
... do something to dismiss both controllers ...

您可能会遇到这样的事情:

[viewControllerA dismissModalViewController:NO];
[viewController dismissModalViewController:NO];

我不确定您所说的“在”或“内部”是什么意思;你“在”哪个班级并不重要。但通常,视图控制器负责其子级。通常,父母将自己设置为孩子的代表。当孩子“完成”时,它会向父母发送一条消息;父母有责任解雇孩子。UIKit 的预打包视图控制器(UIImagePickerController/MFMailComposeViewController/MFMessageComposeViewController)都遵循这种模式。

于 2010-09-26T17:40:16.593 回答
0

这是我所做的..不是一个好的解决方案,但现在可以使用.. :)

///ViewDidLoad [self presentModalViewController:ViewControllerA animated:YES];//工作正常

//ViewController A 内部 [self dismissModalViewControllerAnimated:NO];

//ViewWillAppear [self presentModalViewController:ViewControllerB animated:YES];//工作正常

//在 ViewController B 内部 [self dismissModalViewControllerAnimated:NO];

于 2011-03-01T18:38:29.947 回答