iPad的主细节应用程序

我正在使用带有ARC的XCode 4.5创build主版本的iPad版本。 我有我的iPadMaster.h / .m(作为我的主人)和iPadDetailViewController.h / m(如我的细节)设置。

当用户点击/selectiPadMaster上的行时,我试图从iPadDetailViewController加载不同的视图控制器。

我在iPadMaster.m上设置:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { iPadDetailViewController * DVC = [[iPadDetailViewController alloc]initWithNibName:nil bundle:nil]; DVC.itemNumber = indexPath.row; } 

并尝试在[viewDidLoad]上的iPadDetailViewController.m这个愚蠢的特技:

 switch(_itemNumber) { case 0: { //Detail row vc1 *viewController = [[vc1 alloc] init]; [self presentViewController:viewController animated:YES completion:nil]; break; } case 1: { //Report row vc2 *viewController = [[vc2 alloc] init]; //viewController.somePassedInData = theDataToPass; [self presentViewController:viewController animated:YES completion:nil]; break; } case 2: { //Report row vc3 *viewController = [[vc3 alloc] init]; //viewController.somePassedInData = theDataToPass; [self presentViewController:viewController animated:YES completion:nil]; break; } ... case 9: { //Report row vc9 *viewController = [[vc9 alloc] init]; //viewController.somePassedInData = theDataToPass; [self presentViewController:viewController animated:YES completion:nil]; break; } default: { break; } 

在iPhone上,我只是在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath但我在与iPad环境迷路'切换案件…

感谢提前…

分割视图控制器有一个属性,viewControllers。 索引1处的对象是细节控制器。 你应该创build一个viewControllers的可变副本,用你的新控制器replace索引1处的对象,并将该数组设置为分割视图的arrayControllers。

 NextController *next = [[NextController alloc] init..... // or however you get your new controller NSMutableArray *mut = [self.splitViewController.viewControllers mutableCopy]; [mut replaceObjectAtIndex:1 withObject:next]; self.splitViewController.viewControllers = mut;