2013-03-30 31 views
0

我使用XCode 4.5與ARC創建主版細節應用程序的iPad版本。 我有我的iPadMaster.h/.m(作爲我的主人)和iPadDetailViewController.h/m(如我的細節)設置。iPad的主細部應用程序

我試圖從iPadDetailViewController加載不同的視圖控制器時,用戶單擊/選擇iPadMaster上的行。

我在此設置上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環境丟失...

Thanx提前...

回答

1

分割視圖控制器有一個屬性viewControllers。索引1處的對象是細節控制器。你應該創建一個viewControllers的可變副本,用你的新控制器替換索引爲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; 
+0

參考我上面的代碼,我在哪裏插入?在'[viewDidLoad]'? –

+0

@TeamStar,用您提供的代碼替換您在每個案例子句中的含義。 – rdelmar

+0

我在'[mut replaceObjectAtIndex:1 with:next]出現錯誤; '。它說'沒有可見的@interface for'NSMutableArray'聲明''NSMutableArray'沒有可見的@interface聲明選擇器'replaceObjectAtIndex ...''' –