我有 ADMINviewController,它包含一个 UITableView 并包含一个名为Request的函数,该函数从服务器加载设备并填充 UITableView,当我选择一个单元格时,它是一个设备名称,VehicleInfoViewController 作为一个子视图打开,让我更改设备名称。
所以我想要的是在显示设备名称已成功更改的消息后调用请求函数,以便从服务器重新加载数据并使用新的设备名称更新 UITableView。
如何从子视图调用请求函数?
我有 ADMINviewController,它包含一个 UITableView 并包含一个名为Request的函数,该函数从服务器加载设备并填充 UITableView,当我选择一个单元格时,它是一个设备名称,VehicleInfoViewController 作为一个子视图打开,让我更改设备名称。
所以我想要的是在显示设备名称已成功更改的消息后调用请求函数,以便从服务器重新加载数据并使用新的设备名称更新 UITableView。
如何从子视图调用请求函数?
上面的方法(由 Rafael)也可以被 subView 用来调用位于该 subView 的 viewController 中的方法。只需确保添加必要的方法以避免编译器警告,例如,使用
@synthesize adminController
在上述示例的 VehicleInfoViewController 类的实现中。这也可以从任何具有 VehicleInfoViewController 实例的对象中调用。例如,假设 parentObject 包含一个 vehicleInfoViewController 成员变量,在 parentObject 中调用 Request 如下所示:
[parentObject.adminController performSelector:@selector(Request)];
如果要从 VehicleInfoViewController 类调用 ADMINviewController 类中的 Request 方法,则应将 ADMINviewController 实例的指针传递给 VehicleInfoViewController。
像这样将 id 属性添加到 VehicleInfoViewController 类:
@property(nonatomic,assign)id adminController;
然后在创建 VehicleInfoViewController 实例后,将 self 指针传递给它,如下所示:
vehicleInfoViewController = [[VehicleInfoViewController alloc] initWithNibName:@"vehicleInfoViewController" bundle:nil];
vehicleInfoViewController.adminController = self;
当您需要在 vehicleInfoViewController 中调用 Request 方法时,请执行以下操作:
[self.adminController performSelector:@selector(Request)];