11989


画面左側の`MasterView`の`TableViewCell`をそれぞれタップすると、画面右側の`DetailView`に背景色が違う`View`をそれぞれ表示させようとしているのですが、現在は`TableViewCell`をタップすると`MasterView`内で背景色の違う`View`に画面遷移してしまい、`DetailView`の方には何も変化がない状態です。  
どうすればiPhoneの設定アプリのように画面左側のセルを押すとその内容が画面右側に表示されるようになるでしょうか？  
下記に現在のコードと`Storyboard`の内容を記します。  
どなたか分かる方がいれば教えていただきたいです。  
すみませんが、よろしくお願いします。

[code]

    @interface TableViewController ()
    
    @end
    
    @implementation TableViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
    }
    
    -(NSInteger)numberOfSectionsInTableView: (UITableView *)tableView {
        return 1;
    }
    
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 2;
    }
    
    -(UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
        NSString *str = @"color";
        cell.textLabel.text = [str stringByAppendingString:[NSString stringWithFormat:@"%ld", (long)indexPath.row]];
    
        return cell;
    }
    
    -(void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    
        if (indexPath.row == 0) {
            PinkViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
            [self.navigationController pushViewController:vc animated:YES];
        } else {
            GreenViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"GreenViewController"];
            [self.navigationController pushViewController:vc animated:YES];
        }
    }
    
    @end
    
[/code]

![画像の説明をここに入力](https://i.stack.imgur.com/seM6n.png)


CC BY-SA 3.0
2015-07-03T07:23:19.780
11987
2015-07-03T07:46:55.433
5210
question
ios objective-c uisplitviewcontroller
SplitViewControllerのMasterViewのTableViewCellを選択するとMasterViewの画面が切り替わる


showDetailViewControllerを使えば、期待されるような動作になるかと思います。

[code]

    - (void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UIViewController* vc = nil;
        if (indexPath.row == 0) {
            vc = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
        } else {
            vc = [storyboard instantiateViewControllerWithIdentifier:@"GreenViewController"];
        }
        [self.splitViewController showDetailViewController:vc sender:nil];
    }
    
[/code]

こんな感じでどうでしょうか？


CC BY-SA 3.0
2015-07-03T07:46:55.433
11989
2015-07-03T07:46:55.433
7459
11987
answer