1

我正在开发一个 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”,因此如果您愿意,可以在每个情节提要的视图上放置一个标识符。

4

2 回答 2

0

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

然后取决于用户是否已登录或不隐藏或单隐藏方法以编程方式显示或不显示 2 个视图...

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

它只是一个开始的想法

于 2013-06-25T20:26:38.733 回答
0

所以你要修改viewControllers标签栏的属性。一旦收到用户登录的通知,您可以选择添加两个新的视图控制器,或者如果用户未登录,则默认添加 4 个并删除它们。您可以签入applicationDidFinishLaunching,然后使用self.window.rootViewController.

于 2013-06-25T23:45:27.470 回答