-1

選択したテーブルビュー行の UiLabel 値を他のビューのラベルに渡す必要があります。どうすればよいですか? 私はこれを試しました:

 ViewController1.h:
UILabel *name1;
@property(nonatomic,retain)IBOutlet UILabel *name1;

    ViewController1.m:
- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{

ViewController2 *v2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
v2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController:v2 animated:YES];
 v2.provName=[name1 retain];   //name1 is the name of UILabel in TableView.
[v2 release];
}
    ViewController2.h
UILabel *providerName;
SString *provName;

    ViewController2.m:
- (void)viewDidLoad
{
providerName =[[UILabel alloc] init];
[providerName setFrame:CGRectMake(10,10,300,50) ];
providerName.textAlignment=UITextAlignmentLeft;
providerName.backgroundColor=[UIColor blackColor];

self.providerName.text=self.provName; 
 providerName.highlightedTextColor=[UIColor whiteColor];
[self.view addSubview:providerName];
}

しかし、値を取得していません

4

2 に答える 2

0

2番目のViewControllerでラベルのテキストを更新する必要があります。

v2.providerName.text = name1.text;

または、さらに良いことに、最初のViewControllerでこれを行う2番目のViewControllerに名前をカプセル化します。

v2.provName = name1.text;

2番目のViewControllerにセッターを提供します。

- (void)setProvName:(NSString *)name
{
    // This assumes that ARC is enable - if it isn't then you have to retain...

    self.provName = name;
    self.providerName.text = name;
}
于 2012-10-09T12:22:08.773 に答える
0

が文字列の場合provName、ラベル自体ではなく、ラベルのテキストの値を割り当てます。

于 2012-10-09T12:15:37.763 に答える