gpt4 book ai didi

iphone - 主视图上的弹出框 UITableViewController 触发操作

转载 作者:行者123 更新时间:2023-12-01 19:23:44 25 4
gpt4 key购买 nike

我有一个应用程序可以为您提供一个 popOver Tableview Controller 。这个 popOver 有 n 个单元格。每当触摸弹出窗口中的一个表格单元格时,我都需要能够在主视图上调用一个函数。我该怎么做呢?

一旦触摸了一个单元格,也能够关闭弹出窗口会很好......

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

NSLog(@"Cell check %@", [totalArray objectAtIndex:indexPath.row]);
[self dismissPopoverAnimated:YES];
}

在这里它将在控制台打印单元格中的文本,但我需要能够将该单元格文本传递回主视图......哦,是的,并且 [self dismisspopoveranimated: yes] 不起作用......

最佳答案

解决这个问题的传统方法是使您的“主” View Controller 成为具有 TableView 的类的委托(delegate):

  • 定义一个特定于应用程序的委托(delegate)协议(protocol),添加一个特定于您的用例的委托(delegate)方法,并更改您的“主” View Controller 以符合它。委托(delegate)方法应该接受一个参数,其类型是您要传递给“主” View Controller 的数据(在您的情况下,是 UITableViewCell 或包含其文本的 NSString)。
  • 在具有类型为新委托(delegate)协议(protocol)的 TableView 的类上创建一个属性。
  • 通过将您的“主” View Controller 设置为新属性的值,将其传递到带有 TableView 的类中。
  • tableView:didSelectRowAtIndexPath:方法被调用,在您创建的委托(delegate)上调用委托(delegate)方法,将您想要提供的数据传递给“主” View Controller 。这使您的“主” View Controller 有机会响应在弹出窗口中选择了表格单元格的事实,并且它可以调用您需要的任何函数。

  • 你实际上可以用更少的代码用 block 做同样的事情,但它更高级一些。我不会在这里讨论。

    你也可以只使用 NSNotificationCenter,但我个人尽量避免使用它,除非绝对必要。

    关于iphone - 主视图上的弹出框 UITableViewController 触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957066/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com