带有不同标签栏的iOS Storyboard切换视图

时间:2013-06-25 14:47:46

标签: iphone ios storyboard tabbar

我正在开发一款iOS应用。该应用程序有两种状态:用户被记录,用户未被记录。

如果您启动应用程序(用户未登录),则有两个选项卡。然后,如果需要,您可以登录,应用程序必须显示4个选项卡。如果您关闭应用并再次启动,则应用必须显示4个标签。

我使用用户首选项来存储凭据用户以了解用户是否已记录,但我如何实现它?

如何(使用故事板)我可以显示带有4个标签或2个标签的标签栏?

并且,当应用程序执行时(当您启动应用程序并且未登录并且您登录时)我如何将2tabs标签栏更改为4tabs标签栏?

感谢。请,如果您能提供代码示例,我会很感激。

解决方案: 您必须创建三个故事板。例如:

init.storyboard
logged.storyboard (with 4 tabs)
nologged.storyboard (with 2 tabs)

在init.storyboard上,您可以启动所需的故事板

UIViewController *viewController;

if(user is logged)
  viewController = [[UIStoryboard storyboardWithName:@"Logged" bundle:NULL] instantiateViewControllerWithIdentifier:@"init_tab"];
else
  viewController = [[UIStoryboard storyboardWithName:@"NoLogged" bundle:NULL] instantiateViewControllerWithIdentifier:@"init_tab"];

[self presentViewController:viewController animated:NO completion:nil];

然后,当您想要使用4个标签或2个标签显示应用时,您应该执行相同的“启动”

UIViewController *vc = [[UIStoryboard storyboardWithName:@"Logged" bundle:NULL] instantiateViewControllerWithIdentifier:@"init_tab"];
[self presentViewController:vc animated:YES completion:^{}];

此代码适用于nologged.storyboard中的控制器

检查我是否在故事板上使用了标识符“init_tab”,因此如果您需要,可以在每个故事板中的视图上添加标识符。

2 个答案:

答案 0 :(得分:0)

我认为这在您的代码中更容易,在故事板中正常运行。将4个视图附加到标签栏。

然后取决于用户是否被记录或隐藏或单独隐藏方法以便以编程方式显示2个视图...

编辑:在你的viewdid加载中,2个视图应该是view.hiden = YES; 然后在另一种方法中,例如当用户登录时make view.hiden = No;

这只是一个以

开头的想法

答案 1 :(得分:0)

因此,您将要修改选项卡栏的viewControllers属性。一旦收到用户已登录的通知,您可以选择添加两个新的视图控制器,或者默认情况下为4,如果用户未登录则删除它们。您可以签入applicationDidFinishLaunching然后再登录用self.window.rootViewController抓住你的tabBarController。