返回ViewController时,委派丢失了

时间:2013-11-07 09:08:17

标签: ios uitableview delegates uinavigationcontroller

在我的程序中有两个视图控制器。 第一个有表格视图。 当我点击一个单元格时,相关的炎症显示在第二个视图控制器中。 它运作良好。

当我回到第一个视图controller.click再次单元格现在它不工作。 代表团当时没有工作。
我像这样导航

-(void)gotoviewUnfinishedMinute
{
    NSArray *vc=[self.navigationController viewControllers];

    ViewControllerView *vcView=nil;

    for (int i=0; i<[vc count]; i++)
    {
        UIViewController *tempVC=[vc objectAtIndex:i];
        if([tempVC isKindOfClass:[ViewControllerView class]])
        {
            vcView=[vc objectAtIndex:i];
            break;
        }
    }

    if(vcView)
    {
        [vcView setMeetingMinute:[unfinishedMinutes objectAtIndex:selectedRow]];
        [self.navigationController popToViewController:vcView animated:NO];
        vcView = nil;
    }
    else
    {
        ViewControllerView *vc3New = [self.storyboard instantiateViewControllerWithIdentifier:@"vcview"];
        [vc3New setMeetingMinute:[unfinishedMinutes objectAtIndex:selectedRow]];
        [self.navigationController pushViewController:vc3New animated:NO];
        vc3New = nil;
    }
    vc = nil;
}

像这样的表视图委托

- (void)viewDidLoad
{
        [super viewDidLoad];
        self.tableViewLastMinutes.dataSource = self;
        self.tableViewLastMinutes.delegate = self;
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

-viewWillAppear中分配代理人。 ViewDidLoad仅在加载视图时调用。弹出时不调用

当视图控制器首次加载到内存中时,

viewDidLoad只调用一次。这是您想要实例化任何实例变量并构建在该视图控制器的整个生命周期中存在的任何视图的地方。

当视图可见时调用

viewWillAppear,并且可以在视图控制器的生命周期中多次调用

See the docs

答案 1 :(得分:0)

首先,您可以通过放置他们调用此方法的断点来检查此方法,如果调用您单击的所有其他单元格,则通过放置NSLog来检查您单击它们是否有值的索引路径。

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath