0

大家好,

可能这是一个相当简单的问题,但我是新手,无法解决。好的,问题来了:

  1. 我有主视图控制器,在这个控制器的 viewdidAppear 委托中,我[self presentModalViewController animated:YES];用来显示我的第二个视图。
  2. 在我的第二个视图控制器中的一种方法中,它为某个进程启动了第三个控制器。
  3. 在第三个控制器中的处理之后,它再次启动第二个控制器以调用第二个控制器中的方法。在这种方法中,我使用[self dismissModalViewControllerAnimated:YES];但第二个视图只是拒绝关闭。

希望我对我的情况足够清楚。请指教。提前致谢!

:)

4

2 回答 2

1

@来自帖子:在第三个控制器中的过程之后,它再次启动第二个控制器以调用第二个控制器中的方法。

这表明您正在启动 secondViewController 的新实例,其中没有显示 modalViewController。您应该为实际呈现它的实例调用dismissModalViewControllerAnimated。

像下面

像这样设计你的thirdViewController

@class SecondView;
@interface ThirdView : UIViewController {
    SecondView *secondViewRefPointer;

}
@property (nonatomic, retain) SecondView * secondViewRefPointer;
@end

//While adding the third view from the secondView
ThirdView *thirdViewInstance = [[ThirdView alloc]init];
thirdViewInstance.secondViewRefPointer = self; //self will refer to the current secondView instance

…</p>

在第三个视图中调用dismissModalViewController,如下所示

[secondViewRefPointer dismissModalViewControllerAnimated:YES];
于 2011-09-16T08:41:00.110 回答
0

作为一个成功的尝试,只需首先尝试通过您的第三个视图中的任何按钮触发操作来调用dismissModalViewControllerAnimated:YES。如果可行,请使用 NSLog 并检查调用方法的顺序。这样你就可以确定你应该把dismissModalViewControllerAnimated:YES放在哪里。

希望这可以帮助。

于 2011-09-16T09:10:24.007 回答