如何使用Tab栏在视图之间移动

时间:2012-01-31 07:24:09

标签: iphone objective-c ios xcode uitabbar

我正在做一个基于SingleView的应用程序的应用程序,其中我有许多UIviewcontrollerclass子类,用于从一个视图移动到另一个视图.i在其中一个视图中有一个标签栏,并且想要在单击时与其他视图进行通信一个tab.so plz告诉我怎么能这样做我被困在这里。 我有一个名为

的课程

LoginPage.h / .M /的.xib

Myservices.h / .M /的.xib

History.h / .M /的.xib

Profile.h / .M /的.xib

MyRecentRequest.h / .M /的.xib

当我从登录页面进入时,它会移动到Myservices视图。 我在底部添加了Tab栏,并添加了两个标签项,并且总共有4个标签栏项目,命名为Myservices,history,MyrecentRequest和profile。

现在我想将标签栏与其他类连接起来,这样当我点击标签项时,应该出现该特定类的相应视图,那么我该怎么做呢?请提供示例代码。

2 个答案:

答案 0 :(得分:1)

首先,如何从IB或代码维护tabBar。以下if代码。您需要为每个tabItem分配一个tabBar,其中包含所有viewControllers,下面的示例包含2个tabItems:

UITabBarController* tabBarController = [[UITabBarController alloc] init];
NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:8];

ViewController1* vC1 = [[ViewController1 alloc] init];
UINavigationController* navController1 = [[UINavigationController alloc] initWithRootViewController:vC1];
[vC1 release];      
navController1.tabBarItem.image = [UIImage imageNamed:@"navController1_image.png"];
[localViewControllersArray addObject:navController1];
[navController1 release]; 

ViewController2* vC2 = [[ViewController2 alloc] init];
UINavigationController* navController2 = [[UINavigationController alloc] initWithRootViewController:vC2];
navController2.tabBarItem.image = [UIImage imageNamed:@"navController2_image.png"];
[vC2 release];      
[localViewControllersArray addObject:navController2];
[navController2 release]; 

tabBarController.viewControllers = localViewControllersArray;
    self.window.rootViewController = tabbarController;
[localViewControllersArray release];
    [tabBarController release];

通过这种方式,您可以通过代码维护tabBar,这样如果选择了tab,将显示相应的视图,在此示例中,每个选项卡中都使用导航控制器来提供导航,如果只需要1个视图,则可以避免导航控制器..

答案 1 :(得分:1)

为此,以下代码用于动态选择导航控制器并选择选择哪个选项卡。

-(void)applicationDidFinishLaunching:(UIApplication *)application {

// Add the tab bar controller's current view as a subview of the window
tabBarController.delegate=self;
tabBarController=[[UITabBarController alloc] init];

mainDashBoard=[[DashBoard alloc] initWithNibName:@"DashBoard" bundle:nil];
mainSearchView=[[SearchView alloc] initWithNibName:@"SearchView" bundle:nil];
mainMoreView=[[MoreView alloc] initWithNibName:@"MoreView" bundle:nil];

UINavigationController *nvCtr0=[[[UINavigationController alloc] init] autorelease];
UINavigationController *nvCtr1=[[[UINavigationController alloc] initWithRootViewController:mainDashBoard] autorelease];
UINavigationController *nvCtr2=[[[UINavigationController alloc] initWithRootViewController:mainSearchView] autorelease];
UINavigationController *nvCtr3=[[[UINavigationController alloc] initWithRootViewController:mainMoreView] autorelease];
UINavigationController *nvCtr4=[[[UINavigationController alloc] init] autorelease];//[[[UINavigationController alloc] initWithRootViewController:nil] autorelease];

tabBarController.viewControllers=[NSArray arrayWithObjects:nvCtr0,nvCtr1,nvCtr2,nvCtr3,nvCtr4,nil];

nvCtr0.tabBarItem.enabled=NO;
nvCtr4.tabBarItem.enabled=NO;
 delegate.tabBarController.selectedIndex = 0;
[window tabBarController.view];
}

这可能有助于创建应用程序