我有一个名为ViewController
的视图控制器,其中包含一个嵌入表视图控制器的容器视图。当我按下表格单元格时,我希望ViewController
中的标签可以根据点击的单元格更改文本。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
int row = (int)indexPath.row;
NSString *textlabel = self.array[row];
NSLog(@"%@", textlabel);
ViewController *controller = [[ViewController alloc] init];
controller.viewBarLabel.text = [NSString stringWithFormat:@"%@", textlabel];
}
我使用NSLog进行了检查,它确实从数组中记录了正确的字符串。问题是标签文本没有改变。是的,我确实导入了ViewController.h
。
帮助? 感谢
答案 0 :(得分:0)
您正在创建ViewController的新实例,而不是使用相同的实例。
您不需要视图控制器对象来控制您正在控制的视图控制器内的对象'
。删除此..
ViewController *controller = [[ViewController alloc] init];
你可以使用它..
self.viewBarLabel.text = [NSString stringWithFormat:@"%@", textlabel];
答案 1 :(得分:0)
您不应该再次初始化ViewController。您可以使用UILabel
访问ViewController中的self
。
ViewController *controller = [[ViewController alloc] init];
controller.viewBarLabel.text = [NSString stringWithFormat:@"%@", textlabel];
用
替换上面的2行self.viewBarLabel.text = [NSString stringWithFormat:@"%@", textlabel];
答案 2 :(得分:0)
好的伙计们,
我从未找到实际答案,所以我删除了包含表视图的容器视图,并以视图控制器作为委托创建了一个表视图。这很有效,因为我正在控制器中控制表格视图的动作。 谢谢你的帮助!