0

日冰全部可可触摸 - dismissModalViewControllerAnimated:是不起作用

也许这是一个相当简单的问题,但我新,只是不能把它解决。好了,现在的问题是:

  1. 我主视图控制器,此控制器的viewdidAppear委托,我用[self presentModalViewController animated:YES];展示我的第二个观点。
  2. 在我的第二个视图控制器的方法之一,它启动了第三个控制器的某个过程。
  3. 在第三个控制器中的过程结束后,它再次启动第二个控制器来调用第二个控制器中的一个方法。在这种方法中,我使用[self dismissModalViewControllerAnimated:YES];,但第二种观点只是拒绝驳回。

希望我对我的方案已经够清楚了。请指教。提前致谢!

:)

回答

1

@from柱:在第三控制器的处理之后,它再次启动第二控制器调用在第二控制器的方法。

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

像下面

设计这样

@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 

...

而在第三个观点叫dismissModalViewController你thirdViewController如下

[secondViewRefPointer dismissModalViewControllerAnimated:YES]; 
+0

有没有可能建议我如何实现上述场景?我试图找到一种不同的方法来在第三步调用我的第二个控制器中的方法,而无需启动第二个控制器的新实例,但我该怎么做? :) –

+0

@deadGalaxy肯定,编辑我的答案... – sElanthiraiyan

+0

已经尝试过这个建议,但是用这个,我无法从第三视图调用第二视图中的方法:[secondViewRefPointer myMethod];它投诉Instance方法未找到(返回类型默认为'id')... –

0

作为命中和试用,只需尝试通过任何按钮在第三个视图中触发操作,即可调用dismissModalViewControllerAnimated:YES。如果这样做,使用NSLog并检查序列是否调用方法。通过这种方式,你可以确定你应该把你的dismissModalViewControllerAnimated:YES。

希望这会有所帮助。

+0

感谢您的评论,选择了SElanthiraiyan的建议。 :) –

+0

好的。别担心。 :) –