2012-03-18 25 views
0

我希望我简单地忽略了一些简单的事情。但在这里的情况。从另一个视图中关闭模式(通过代理)

我有一个root vc,它打开一个模态视图LoginScreen。在该视图中,我创建了一个协议(ViewControllerDelegate),一旦用户通过模式登录,父VC将关闭模式,一切正常。

在LoginScreen.m关闭模式我所用的是这个代码:

[self.delegate loginConfirmed:self]; 

完美的作品。不过,我有另一种观点认为,登录被确认。仍然作为一种模式。称它为LoginScreen2。

我无法弄清楚如何让Modal从LoginScreen2关闭并返回到根VC。我试过了一堆不同的变化,但没有运气。

[((LoginScreen *)self.parentViewController).delegate loginConfirmed:((LoginScreen *)self)]; 

我一直在寻找和搞乱了几个小时,没有运气。再次,我希望我只是想念一些简单的东西,而没有看到它。如果任何人有任何想法,真棒。

+0

我没有发现问题,你有第二个模态视图,出现在LoginScreen之后?你不能解雇它? – LuisEspinoza 2012-03-18 01:34:15

+0

嘿@LuisEspinoza - 感谢您在此检查。今晚我为自己过分的复杂。下面的Danh解决方案很好地解释了它但我很感激你愿意帮忙。 – 2012-03-18 01:44:05

回答

2

不知道是谁提出的第二个视图控制器,但有一点可以帮助你是知道一个模态呈现视图控制器可以辞退自己:

[self dismissModalViewControllerAnimated:YES]; 

根视图控制器可以检查用户状态当它出现,并且presentModalViewController:Login1。 Login1更改用户登录状态,并自行解散。 Root会看到不同的用户状态(当它即将通过viewWillAppear:方法重新出现)并在Login2上显示模态。没有代表团需要。

+0

哇,看起来我只是花了一大堆时间来为自己复杂化!非常感谢你的解释和想法。像魅力一样工作,并不复杂!谢谢,丹 – 2012-03-18 01:42:24

相关问题