在注销期间,我是否必须在故事板中展开“堆栈”?

时间:2011-11-01 20:48:16

标签: objective-c cocoa-touch ios5

我有一个故事板设置:

TitleScreen
(推)
LoginScreen
(CustomSegue)
UITabBarViewController(这里的根视图是一个UINavigationController)
(模态)
SettingsView
(CustomSegue)
TitleScreen

所以我的目标是在Logout中设置一个“SettingsView”按钮,用户将返回TitleScreen

但是,当我尝试此操作时,退出后,TitleScreen将不再转换为LoginScreen。它在启动应用程序时有效,但在“退出”之后却无效。

这是否意味着,我必须以某种方式解开Storyboard'堆栈'?如果是这样,如何通过1次转换完成?

创意:通过AppDelegateNSNotificationCenter发送通知,重新创建rootViewControler

之前有人这样做过吗?

2 个答案:

答案 0 :(得分:0)

如果是我,我会将导航控制器放在设计的开头,然后使用 popToRootViewController:animated:返回到root。如果您不希望导航栏显示早期视图(如登录页面),则始终可以选择隐藏它。

我在tutorial here做类似的事情,我在设计顶部的两个标签上都有一个导航控制器,除了我没有隐藏任何东西,因为它只是用于教程。

答案 1 :(得分:0)

我会在这里重新考虑一下你的故事板布局。标题屏幕和登录屏幕基本上只是应用主要部分UITabBarController之上的模态视图。我会让UITabBarController成为故事板中的初始视图控制器,然后在应用程序完成启动后以模态方式呈现标题视图/登录屏幕。

现在有了这个设计,显示登录屏幕就像执行任何模态segue一样简单。您可能需要考虑使用设置视图控制器中的委托来通知呈现视图控制器用户已注销并且应显示登录视图控制器。