需要帮助获取子视图控制器的父引用

时间:2010-04-21 14:01:02

标签: iphone uiviewcontroller

我的一个视图控制器中有以下代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
      case 0: // "days" section tapped
      {     DayPicker *dayPicker = [[DayPicker alloc] initWithStyle:UITableViewStylePlain];
           dayPicker.rowLabel = self.activeDaysLabel;
           dayPicker.selectedDays = self.newRule.activeDays;
           [self.navigationController pushViewController:dayPicker animated:YES];
           [dayPicker release];
           break;

...

然后,在DayPicker控制器中,我对dayPicker.rowLabel属性执行了一些操作。现在,当dayPicker被解除时,我希望dayPicker.rowLabel中的值被用作首先调用控制器的单元格中的cell.textLabel.text属性(即,单元格标签成为选中的选项在DayPicker控制器内。)

我认为通过使用赋值运算符来设置dayPicker.rowLabel = self.activeDaysLabel,两者指向内存中的同一个对象,并且在解除DayPicker时,我的第一个视图控制器使用self.activeDaysLabel作为有问题的单元格的cell.textLabel.text属性会自动获取对象的新值。但没有这样的运气。

我是否错过了一些基本的东西,或者我是以错误的方式解决这个问题的?我最初将对调用视图控制器的引用传递给子视图控制器,但是有些人告诉我这可能会导致问题,成为循环引用。但这种设置很有效;现在我不确定如何以“正确的方式”完成同样的事情。

像往常一样,提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

原来我需要添加对

的调用
[self.tableView reloadData];

在viewWillAppear方法中获取表以读取新值。