как перемещаться между представлениями с помощью панели вкладок - PullRequest
0 голосов
/ 31 января 2012

Я делаю приложение из приложения SingleView BASED, в котором у меня есть много подклассов UIviewcontrollerclass для перехода от одного представления к другому. У меня есть панель вкладок в одном из представлений и я хочу общаться с другими, когда нажимаю наtab.so плз, скажите мне, как я могу это сделать, я застрял здесь.у меня есть классы

LoginPage.h / .m / .xib

Myservices.h / .m / .xib

History.h / .m / .xib

Profile.h / .m / .xib

MyRecentRequest.h / .m / .xib

, когда я захожу со страницы входа, он перемещается в представление Myservices.Там я добавил панель вкладок внизу и добавил еще две вкладки «Элементы», и у меня есть 4 элемента панели вкладок с именами Myservices, history, MyrecentRequest и profile.

Теперь я хочу связать панель вкладок с другим классом, чтобыкогда я нажимаю на элемент вкладки, должен появиться соответствующий вид этого конкретного класса, так как я могу это сделать?Пожалуйста, предоставьте мне пример кода.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Для этого следующий код используется для динамического выбора контроллера навигации и выбора вкладки.

-(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];
}

это может быть полезно для упаковки приложения

1 голос
/ 31 января 2012

Прежде всего, как вы поддерживаете tabBar из IB или кода. Ниже, если по коду. Вам нужно выделить tabBar со всеми необходимыми viewControllers в каждом tabItem, ниже приведен пример с 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 по коду, так что если выбрана вкладка, будет отображаться соответствующий вид, в этом примере контроллер навигации используется на каждой вкладке для обеспечения навигации, если требуется только 1 представление, вы можете избежать навигационный контроллер ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...