从其他视图关闭模态(通过委托)

时间:2012-03-18 00:20:18

标签: iphone objective-c xcode interface-builder xcode4.2

我希望我只是简单地忽略了一些事情。但在这里的情景。

我有一个root vc,可以打开一个模式视图LoginScreen。在该视图类中我设置了一个合成的协议(ViewControllerDelegate),一旦用户通过模态登录,父VC关闭模态,一切都很好。

在LoginScreen.m中关闭模式所有我必须使用的是这段代码:

[self.delegate loginConfirmed:self];

完美无缺。但是,我有另一个被推送的视图是登录确认。当然还是一种模式。称之为LoginScreen2。

我无法弄清楚如何让Modal从LoginScreen2关闭并返回到根VC。我尝试了很多这样的不同变体,但没有运气。

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

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

1 个答案:

答案 0 :(得分:2)

不确定是谁展示了第二个视图控制器,但有一件事可能会帮助你知道一个模态呈现的视图控制器可以解雇自己:

[self dismissModalViewControllerAnimated:YES];

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