0

我在一个情节串连图板以下控制器:开卷从在导航控制器内的表视图控制器的按钮

Storyboard

导航控制器由一个按钮中的主视图控制器segued到剩下。它出现在popover中。当用户单击右侧表视图控制器顶部的“注销”按钮时,我需要继续回到主视图控制器,调用执行注销的方法,然后显示认证视图控制器(如果用户未登录,则不能使用该应用程序)。我试图做到这一点的每一个方法都失败了。

  1. 我几乎可以用开卷SEGUE做到这一点,但如果我在主视图的展开方法我启动认证视图控制器,我得到一个“尝试从视图控制器驳回,而演示或解雇是进展“警告。设置一个计时器来等待解雇完成的任意时间看起来像一个黑客。 (我希望有一个“你的segue刚完成”回调。)

  2. 我不能通过设置主视图控制器作为prepareForSegue方法中的设置控制器的委托并调用委托方法当点击按钮时,这将是常态,因为segue中的destinationViewController不是我的设置控制器,它是容纳它的导航控制器。

有一些明显的方法可以做到这一点,对吧?也许通过将按钮附加到设置视图控制器中的一个方法来解除它自身,然后在完成块中触发一个NSNotification?这似乎仍然很难。

回答

1

可以使主视图控制器在prepareForSegue的设置方法控制器的委托,通过使用:

SettingsViewcontroller *settings = [(UINavigationController *)segue.destinationViewController topViewController]; 
settings.delegate = self; 

我想,那么你可以调用的设置控制器的viewDidDisappear方法的委托方法。

+0

无论出于何种原因,我似乎无法让popover解雇,但您的解决方案显然是正确的,所以我接受它。谢谢。 – bkocik 2013-03-27 12:20:05

相关问题