如何在ios中运行应用程序中的标签栏项目

时间:2016-05-19 14:10:18

标签: ios objective-c uitabbarcontroller uistoryboard uitabbaritem

我创建了一个以nginx.conf作为初始UITabbarController的故事板,并在标签栏中添加了6个项目

enter image description here

直到这里很好。现在我需要在以下条件下管理标签栏项目:

  1. 如果用户未登录 - 请删除第6项
  2. 如果用户已登录 - 请删除第5项
  3. 我可以通过以下代码

    删除rootViewControllerdidFinishLaunchingWithOptions中的标签项
    AppDelegate



    但是当用户使用第5个标签进行注册和登录时,我需要这样做
    成功登录后我将标签索引更改为0,并在- (BOOL)application : (UIApplication *)application didFinishLaunchingWithOptions : (NSDictionary *)launchOptions { NSString *getUserLoggedStatus = [[NSUserDefaults standardUserDefaults] valueForKey : @"USER_STATUS"]; BOOL loggedStatus = ([getUserLoggedStatus isEqualToString : @"1"]) ? true : false; UIStoryboard *storyboard = [UIStoryboard storyboardWithName : @"Main" bundle : nil]; UITabBarController *tabbarController = [storyboard instantiateViewControllerWithIdentifier : @"MyTabBarController"]; NSMutableArray *tabbarItems = [NSMutableArray arrayWithArray : tabbarController.viewControllers]; if (!loggedStatus) { for (UINavigationController *nav in tabbarItems) { if([nav.restorationIdentifier isEqualToString : @"CommunityStoryboardID"]) { [tabbarItems removeObject : nav]; break; } } [tabbarController setViewControllers : [NSArray arrayWithArray : tabbarItems]]; } else { for (UINavigationController *nav in tabbarItems) { if([nav.restorationIdentifier isEqualToString : @"RegisterStoryboardID"]) { [tabbarItems removeObject : nav]; break; } } [tabbarController setViewControllers : [NSArray arrayWithArray : tabbarItems]]; } self.window.rootViewController = tabbarController; return YES; } viewDidLoad中添加以下代码,条件是用户已登录并从注册/登录页面重定向

    HomeViewController
      

    上面的代码不起作用,并没有抛出任何错误。    请协助。

0 个答案:

没有答案