0

我有 TableViewController 和 DetailViewController。我想在 DetailViewController 中修改一个名为“label”的标签。

表视图控制器.h:

@interface CodexTableView : UIViewController <UITableViewDelegate,     UITableViewDataSource>
{
 NSMutableArray *listOfItems;
    DetailViewController *vc;



}
@property (nonatomic, retain) DetailViewController *vc;
@property (strong, nonatomic) IBOutlet UITableView *myTable;

@end

以及我的 TableViewController.m 的摘录:

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

vc.label.text = @"bonjour";


//UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
//NSLog(@"%@",cell.textLabel.text);

DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];

dvController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}

但它不起作用。有人知道错误吗?请帮我。谢谢 :)

4

1 回答 1

0

您为详细视图控制器混合了两个变量。删除dvController一个并且仅适用于您的vc财产,如下所示:

vc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
[[vc label] setText:@"bonjour"];

为您的详细视图控制器创建一个属性,label并将其指向您的屏幕标签。

于 2012-09-26T14:36:47.337 回答