TableView – 選択された項目を変数に格納して別画面に遷移

元画面・・・RootViewController
遷移先・・・DetailViewController

まず、遷移先の画面で、選択された項目を格納するための変数とメソッドを用意する。

『DetailViewController.h』

@interface DetailViewController : UITableViewController<UIAlertViewDelegate>{
    NSString *textSelected;
}
@property (nonatomic, retain) NSString *textSelected;
-(id) initWithTextSelected:(NSString *) text;

『DetailViewController.m』

@synthesize textSelected;

-(id) initWithTextSelected:(NSString *) text {
    self.textSelected = text;
    return self;
}

次に、遷移元となるTableViewで、遷移先の画面とメソッドを使用できるようにする。

『RootViewController.h』

@interface RootViewController : UITableViewController{
    DetailViewController *detailViewController;
}
@property (nonatomic, retain) DetailViewController *detailViewController;

『RootViewController.m』

@synthesize detailViewController;

遷移元のテーブルが選択されたときに起動するメソッドで、画面の用意と、あらかじめ用意していたメソッドの呼び出しとデータの格納を行い、画面を遷移させる。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *selectedItem = [listGroup objectAtIndex:[indexPath row]];
    
    DetailViewController *d = [[DetailViewController alloc] 
                                initWithNibName:@"DetailViewController" 
                                bundle:[NSBundle mainBundle]];
        
    self.detailViewController = d;
    [d release];

    [self.detailViewController initWithTextSelected:selectedItem];
    [self.navigationController pushViewController:self.detailViewController animated:YES];
    
    [selectedItem release];
}

これで、画面遷移時に、変数textSelectedに選択された項目の内容が格納された状態になる。

コメントを残す

メールアドレスが公開されることはありません。