【问题标题】:Delegation lost when back to ViewController返回 ViewController 时委托丢失
【发布时间】:2013-11-07 09:08:16
【问题描述】:

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

当我回到第一个视图控制器时。再次单击单元格现在它不起作用。 那个时候委派不工作。
我是这样导航的

-(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;
}

我该如何解决这个问题?

【问题讨论】:

  • 你是否通过在 didSelect 委托方法中放置一个检查点来检查它
  • 是的,这个函数没有调用。当我点击单元格时
  • 使用情节提要时在视图控制器之间导航的奇怪方式...您是否考虑使用带有 UITableViewController 作为根视图控制器的导航控制器,并在此表视图控制器和您的第二个视图之间添加一个 segue控制器?

标签: ios uitableview delegates uinavigationcontroller


【解决方案1】:

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

viewDidLoad 只被调用一次,当视图控制器第一次加载到内存中时。这是您想要实例化任何实例变量并构建在此视图控制器的整个生命周期中存在的任何视图的地方。

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

See the docs

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-30
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      相关资源
      最近更新 更多