我正在做一个基于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。
现在我想将标签栏与其他类连接起来,这样当我点击标签项时,应该出现该特定类的相应视图,那么我该怎么做呢?请提供示例代码。
答案 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];
}
这可能有助于创建应用程序