UITabBar
ユーザーが2つのカテゴリに分類されるアプリケーションのログイン画面があります。あるタイプのユーザーには特定のタブを表示し、別のタイプのユーザーには他のタブを表示したいと思います。どこから始めればいいのか、誰か知っていますか?
質問する
199 次
1 に答える
2
私のアプリの1つで、このコードを使用してアプリの間にタブバーコントローラーを設定しました。最初にタブバーコントローラーなしでログイン画面を
作成します。これは、 AppDelegate.m
でタブバーコントローラーを定義する
条件に応じて変更する例です。
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.delegate=self;
self.tabBarController.selectedIndex=0;
self.tabBarController.delegate=self;
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
//NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewController];
// return YES;
}
ログインしてタブバーコントローラーでコントローラーをプッシュする場所に以下のコードを適用します
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *viewController1 = [[GeneralViewController alloc] initWithNibName:@"GeneralViewController" bundle:nil];
UIViewController *viewController2 = [[MiscQuotationController alloc] initWithNibName:@"MiscQuotationController" bundle:nil];
UIViewController *viewController4 = [[QuotationListController alloc] initWithNibName:@"QuotationListController" bundle:nil];
UIViewController *viewController5 = [[ChargesViewController alloc] initWithNibName:@"ChargesViewController" bundle:nil];
UIViewController *viewController7 = [[SalesPartViewController alloc] initWithNibName:@"SalesPartViewController" bundle:nil];
/// tab button title
viewController1.title = @"Basic information";
viewController2.title = @"Misc Quotation";
viewController4.title = @"Quotation Line";
viewController5.title = @"Charges";
viewController7.title = @"Sales Part Stock";
// tab button Images
viewController1.tabBarItem.image = [UIImage imageNamed:@"general.png"];
viewController2.tabBarItem.image = [UIImage imageNamed:@"misle.png"];
viewController4.tabBarItem.image = [UIImage imageNamed:@"history.png"];
viewController5.tabBarItem.image = [UIImage imageNamed:@"charges.png"];
viewController7.tabBarItem.image = [UIImage imageNamed:@"shoebox.png"];
delegate.tabBarController = [[UITabBarController alloc] init];
delegate.tabBarController.selectedIndex = 0;
//ここにユーザーの状態を記入します
if(user == admin){
delegate.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController4, viewController5, viewController7, nil];
}
else{
delegate.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController2, viewController4, viewController5, viewController7, nil];
}
delegate.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, viewController4, viewController5, viewController7, nil];
delegate.tabBarController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self.navigationController pushViewController:delegate.tabBarController animated:YES];
于 2012-04-06T04:40:51.990 に答える