1

ビューコントローラーから別のビューコントローラーに変数を渡したいので、ユーザーが最初のテーブルビューで特定の行を選択すると、アプリケーションは別のビューコントローラーに移動し、選択したアイテムの詳細が表示されます。これは私のコードです:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


    NSString *selectedAuthors = [theauthors objectAtIndex:indexPath.row];


    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    Details *dvController = [storyboard instantiateViewControllerWithIdentifier:@"Details"]; //Or whatever identifier you have defined in your storyboard





    dvController.selectedAuthors = selectedAuthors;

    UIAlertView *messageAlert = [[UIAlertView alloc]
                                initWithTitle:@"Row Selected" message:authorNAme delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

   // Display Alert Message
    authorNAme =  [[NSString stringWithFormat:[theauthors objectAtIndex:indexPath.row]] intValue];
 [messageAlert show];

    [self.navigationController pushViewController:dvController animated:YES];
}

selectedAuthors は文字列です。authorName は、選択した行の内容を格納するグローバル変数です。どんな助けでも大歓迎です。

4

2 に答える 2

1

ストーリーボードを使用しているようです。

この場合、次のView Controllerに情報を送信するには、実装する必要があります

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

このメソッドは、セグエが実行されようとするたびに呼び出されます。たとえば、didSelectRowAtIndexPathでは、行の情報を辞書に保存し、prepareForSegueメソッドで次のビューコントローラーに渡すことができます。

詳細については、SimpleDrillDownという名前のAppleのサンプルプロジェクトをご覧ください。それはあなたがする必要があるのと同じことをします: http ://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html

于 2012-08-09T11:29:27.687 に答える
-1
 NSString *titleString = [[[NSString alloc] initWithFormat:@"Element number :  %d",indexPath.row] autorelease];

これは、変数を送信するために使用される最も単純な関数であり、どこからともなく出てきました! 迷う方はこれが一番の機能です!!

于 2012-08-09T09:00:34.807 に答える