我创建了一个有9个屏幕的应用程序,我在其中添加了包含4个baritem的tabbar。 现在我有两个问题 -
1 =>我的最后一个baritem是注销按钮,我不想为它显示视图控制器,只需当用户单击此按钮然后会弹出alertview并要求注销,如果用户说是,那么它将注销。
2 =>如何在该视图控制器中显示未添加到标签栏中的标签栏,因为我有9个屏幕,标签栏中只显示4个屏幕。
更新
我说我的应用程序中有9个视图控制器
像...
firstViewController
secondViewController
thirdViewController
fourViewController
|
|
ninthViewController
但是我的tabbar在baritem中只有四个视图控制器 -
firstViewController
secondViewController
thirdViewController
fourViewController
现在,我的其他视图控制器不显示标签栏。
答案 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视图的子视图。