0

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

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

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

更新

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

像...

firstViewController
secondViewController
thirdViewController
fourViewController
|
|
ninthViewController

但是我的标签栏在 baritem 中只有四个视图控制器,它们是 -

firstViewController
secondViewController
thirdViewController
fourViewController

现在,我的另一个视图控制器不显示标签栏。

4

2 回答 2

1

我不知道这是否正确,但你可以这样做......

首先阅读这个问题,该问题显示如何显示登录并返回主页。

现在在 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];
    }
}
于 2013-01-16T16:15:37.420 回答
0

你的第一个问题:

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

你的第二个问题:

有几种方法可以显示不是选项卡栏控制器的主要 VC 之一的视图控制器。可以通过以下方式到达:

  • 显示为模态屏幕

  • 作为弹出窗口

更新

要显示不是选项卡栏的主 VC 但仍使选项卡栏可见的“辅助”视图控制器,您可以将该辅助 VC 显示为主选项卡栏 VC 的子视图控制器。换句话说,将辅助 VC 的视图呈现为主 VC 视图的子视图。

于 2013-01-16T15:53:19.490 回答