Как загрузить другой контроллер представления при изменении панели вкладок в главном контроллере представления? - PullRequest
1 голос
/ 22 февраля 2012

Я создаю iPad по ссылке . В этом мне нужно загрузить разные viewcontrollers, когда я меняю вкладку в мастерской. Как я могу это реализовать? Я создал контроллер вкладок следующим образом: в файле Appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.

    tabBarController = [[UITabBarController alloc] init];

    StudentVC *stdntVC = [[[StudentVC alloc]initWithNibName:@"StudentVC" bundle:nil] autorelease];
    TeachersVC *teachersVC = [[[TeachersVC alloc]initWithNibName:@"TeachersVC" bundle:nil] autorelease];
    MasterViewController *masterViewController = [[[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil] autorelease];
    ConfigurationVC *configViewController = [[[ConfigurationVC alloc] initWithNibName:@"ConfigurationVC" bundle:nil] autorelease];

    UINavigationController *masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
    UINavigationController *studentNavigationController = [[[UINavigationController alloc] initWithRootViewController:stdntVC] autorelease];
    UINavigationController *teacherNavigationController = [[[UINavigationController alloc] initWithRootViewController:teachersVC] autorelease];
    UINavigationController *configNavigationController = [[[UINavigationController alloc] initWithRootViewController:configViewController] autorelease];

    NSArray* controllers = [NSArray arrayWithObjects:studentNavigationController,teacherNavigationController,masterNavigationController, configNavigationController, nil];
    tabBarController.viewControllers = controllers;

    ShowDetailsVC *showViewController = [[[ShowDetailsVC alloc] initWithNibName:@"ShowDetailsVC" bundle:nil] autorelease];
    UINavigationController *detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:showViewController] autorelease];


    self.splitViewController = [[[UISplitViewController alloc] init] autorelease];
    self.splitViewController.viewControllers = [NSArray arrayWithObjects:tabBarController, detailNavigationController, nil];

    self.splitViewController.delegate = showViewController;

    self.window.rootViewController = self.splitViewController;    

    stdntVC.detailsVC = showViewController;
    teachersVC.detailsVC = showViewController;
    masterViewController.detailsVC = showViewController;
    configViewController.detailsVC = showViewController;

    [self.window makeKeyAndVisible];

    return YES;
}

Вот снимок экрана: enter image description here Пожалуйста, поделитесь своими идеями.

1 Ответ

1 голос
/ 22 февраля 2012

вы можете использовать метод – tabBarController:didSelectViewController: из UITabBarControllerDelegate, чтобы узнать, какой viewController выбран. и ты обновляешь свое мастерство

https://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html

...