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