2013-11-24 111 views
0

我想原因请看回到主屏幕,并从栈中弹出的一切 我使用UINavigationControllerSegue公司到家里查看

[self.navigationController popToRootViewControllerAnimated:YES]; 

我到什么地方调用这个方法?我尝试过-(void) prepareForSegue,这不起作用。 基本上我想确保当我回到主屏幕时,标题左侧没有后退按钮。
这里的主屏幕是指我的应用程序的欢迎屏幕。

我不确定我的代码的哪一部分应该发布。如果您需要查看我的代码,请发表评论。

预先感谢您。

+0

Popping控制器与segue无关(通常至少)。您可能希望在用户操作或某些程序逻辑让您想要进入欢迎屏幕的任何位置放置该代码。 –

+0

什么是您的部署目标版本。因为 - iOS 5中的Storyboard不提供“无代码”的方式从一个segue返回 – codercat

+0

popviewcontroller只有在你被推送时才有效。 – codercat

回答

0

假设你正在使用Storyboard,并且在那里声明的UIButton是触发你要执行的动作的那个,你应该在.h中声明一个IBAction:-(IBAction)buttonPressed:(id)sender;并在.m中实现它。该方法内应该出现[self.navigationController popToRootViewControllerAnimated:YES];代码。当记得在故事板里面时,请记住将该动作附加到该UIButton上。

希望它有帮助!

+0

谢谢你的回复。为了更好地说出我的问题,它与没有后退按钮的继续相同。我该怎么做? – Ra1nWarden

+0

我还是不明白你想做什么。当你弹出到rootViewController时,没有后退按钮。为什么?因为你正在弹出根视图。没有后视图。你想要一个UIButton来执行'[self.navigationController popToRootViewControllerAnimated:YES];'动作或你想要发生什么? – FabKremer

+0

这就像完成一项任务时返回主菜单一样。如果从任务结束时进入主菜单,标题栏左侧有一个后退按钮?我不想让那个按钮看起来像刚刚启动的应用程序。 – Ra1nWarden

0

我认为你的困惑是围绕着什么是segue以及它如何与导航控制器堆栈相关的概念。该堆栈与基本数据结构堆栈(http://en.m.wikipedia.org/wiki/Stack_(abstract_data_type))完全相同,因为它是后进先出存储。当你继续时,你通常会添加到该堆栈,例如将一个新的VC推入堆栈。在大多数情况下后退按钮不会这样做。它会弹出,或从堆栈中移除。这就是为什么你可能不会从prepareForSegue方法调用pop方法。而是尝试在其他点调用它,比如当他们点击后退按钮时,或者在发生某些操作后。