【发布时间】:2012-02-23 20:44:43
【问题描述】:
我有一个基本的模态视图控制器。然后我创建第二个:
FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];
从那里,我调用第三个视图控制器:
ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];
现在我想回到第一个视图控制器。我试过(这是当前显示的视图控制器):
-(IBAction)doneBtn
{
//[self.parentViewController dismissModalViewControllerAnimated:YES]; //removed
[self dismissModalViewControllerAnimated:NO]; //added
[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil]; //added
}
在中间/s视图控制器中,我在viewDidLoad中添加了一个观察者:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismissModals:)
name:@"CloseAllModalViews"
object:nil];
和方法:
-(void) dismissModals:(id)sender
{
[self dismissModalViewControllerAnimated:NO];
}
按下时,它什么也不做。它不会拒绝任何意见。
有什么想法可以让它工作吗?
编辑:找出崩溃的原因;我忘记了我在 IB 的完成按钮上添加了一个 segue。这会导致内存问题并导致崩溃。
编辑 2:这会将两个视图控制器解散回基本/第一个视图控制器。它没有给我任何动画。我可以在没有动画的情况下关闭当前的 VC,并在没有动画的情况下关闭中间的 VC,但我在过渡前会短暂看到中间的 VC。如果可能的话,我希望有一个从当前 VC 到基本 VC 的动画。
【问题讨论】:
-
在设备上运行控制台时没有提示?构建时来自 xcode 的任何警告?
-
不,当我在 ipad 上运行控制台时,控制台中没有崩溃信息。我注意到 xcode 4.2 提供的反馈比以前版本的崩溃要少得多。 =/
-
如果你的第一个视图控制器是一个导航控制器,你可以使用
popToRootViewControllerAnimated:。想换吗?
标签: objective-c ios