想要在tabbar中创建注销按钮

时间:2013-01-16 15:43:32

标签: iphone ios uitabbar

我创建了一个有9个屏幕的应用程序,我在其中添加了包含4个baritem的tabbar。 现在我有两个问题 -

1 =>我的最后一个baritem是注销按钮,我不想为它显示视图控制器,只需当用户单击此按钮然后会弹出alertview并要求注销,如果用户说是,那么它将注销。

2 =>如何在该视图控制器中显示未添加到标签栏中的标签栏,因为我有9个屏幕,标签栏中只显示4个屏幕。

更新

我说我的应用程序中有9个视图控制器

像...

firstViewController
secondViewController
thirdViewController
fourViewController
|
|
ninthViewController

但是我的tabbar在baritem中只有四个视图控制器 -

firstViewController
secondViewController
thirdViewController
fourViewController

现在,我的其他视图控制器不显示标签栏。

2 个答案:

答案 0 :(得分:1)

我不知道这是对的,但你可以这样做......

首先阅读此question,了解如何显示登录信息并回到家中。

现在在didFinishLaunchingWithOptions方法

中添加此代码

UIViewController * logoutVC = [[UIViewController alloc] init];

NSArray *viewControllersArray = [[NSArray alloc] initWithObjects:firstView, secondView, thirdView,logoutVC, nil];

self.tabController = [[UITabBarController alloc] init];
[self.tabController setViewControllers:viewControllersArray animated:YES];
[self.window addSubview:self.tabController.view];

实现tabbar的这种委托方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    //select the index where your logout button is
    if ([tabBarController selectedIndex] == 3) {
        NSLog(@"logout");
        self.tabController.selectedViewController = fistView;  //firstview is your home screen
        //LOGOUT
        LoginViewController * vc = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
        vc.delegate = self;
        [self.tabController presentModalViewController:vc animated:NO];
    }
}

答案 1 :(得分:0)

您的第一个问题:

不要这样做,这是滥用标签栏控制器。选项卡栏控制器上的每个项目应该是应用程序中的不同视图,而不是操作。找到退出操作按钮的合适位置。

您的第二个问题:

有几种方法可以显示视图控制器,它不是标签栏控制器的主要VC之一。可以通过以下方式达成:

  • 显示为模态屏幕

  • 作为一个popover

<强>更新

要显示不是标签栏主VC的“辅助”视图控制器,但仍然可以看到标签栏,可以将该辅助VC显示为主标签栏VC的子视图控制器。换句话说,将辅助VC的视图显示为主VC视图的子视图。