从子视图UIViewController Xcode调用函数

时间:2012-09-14 06:09:54

标签: iphone objective-c ios xcode ipad

我有一个包含UITableView的ADMINviewController,它包含一个名为 Request 的函数,它从服务器加载设备并填充UITableView,当我选择一个设备名称的单元格时,VehicleInfoViewController作为一个子视图打开,让我更改设备名称。

所以我想要的是在显示设备名称已成功更改的消息后调用 Request 函数,以便从服务器重新加载数据并使用新设备名称更新UITableView

如何从子视图中调用请求功能?

2 个答案:

答案 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)];