2

我有一个小问题。
我正在服用 5 个 ViewCrollers A、B、C、D、E。A 是一个 RootViewcontroller。在 A 中添加一个按钮并给它一个动作。当我单击按钮时,presentModalViewController会显示被调用的 B ViewController。它的 addsubView 进程。因此,在所有观点中,相同的过程都是他们的。指链式过程。
但在最后一个视图中,我想关闭这个 presentmodalViewController。我已经尝试过这种类型的代码。

-(IBAction)Done:(id)sender
{
   [self dismissModalViewControllerAnimated:NO];
}

但它不起作用。给我适当的指导..谢谢..

4

3 回答 3

2

尝试使用这样的通知:

- (void)dismissSelf {
[self dismissModalViewControllerAnimated:YES];  
}


- (void)receiveDismissNotification:(NSNotification *) note{
[self performSelectorOnMainThread:@selector(dismissSelf) withObject:nil waitUntilDone:NO];
}
于 2012-09-17T16:03:50.830 回答
1

在 E View 的按钮事件上,这样写

-(IBAction)Done:(id)sender
{
    id mainViewController = [self.view.superview.superview nextResponder];
    [mainViewController dismissModalViewControllerAnimated:YES];
}

此代码未经测试,但尝试使用它,希望它有效:-)

于 2012-07-02T12:06:11.417 回答
0

在同一个 .xib 文件中制作从 A 到 E 的所有视图....

然后在你的 .h 文件中声明:

UIView *containerView;

和 IBOutlets 用于从 B 到 E 的所有视图。

在 .m 文件中:

在您的 A 视图的按钮操作中,您可以执行此操作...

containerView= [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[containerView addSubview:BView]; 
[self.view addSubview:containerView];

此代码会将您的 BView 添加到您的 rootViewController 中,即 A...

现在在休息视图的 IBAction 中,您可以编写此代码来导航..

[UIView transitionFromView:BviewController toView:CViewController duration:1.0 options:UIViewAnimationOptionTransitionCurlDown completion:nil];

等等...

回到你的 rootViewController 即 A

[containerView removeFromSuperview];

在 E 视图的 IBAction 中;或者您也可以使用 transitionFromView 导航...

于 2012-07-02T12:59:34.007 回答