0

UITableViewを含み、サーバーからデバイスをロードしてUITableViewに入力するRequestという関数を含むADMINviewControllerがあります。デバイス名であるセルを選択すると、サブビューとしてVehicleInfoViewControllerが開き、デバイス名を変更できます。

したがって、サーバーからデータをリロードし、UITableViewを新しいデバイス名で更新するために、デバイス名が正常に変更されたことを示すメッセージを表示した後、 Request関数を呼び出す必要があります。

サブビューからリクエスト関数を呼び出す方法は?

4

2 に答える 2

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)];
于 2012-09-14T09:02:27.230 に答える
2

上記のアプローチ(Rafaelによる)は、subViewで使用して、そのsubViewのviewControllerにあるメソッドを呼び出すこともできます。コンパイラの警告を回避するために必要なメソッドを必ず追加してください。たとえば、

@synthesize adminController

上記の例のVehicleInfoViewControllerクラスの実装で。これは、VehicleInfoViewControllerインスタンスを持つ任意のオブジェクト内から呼び出すこともできます。たとえば、parentObjectにvehicleInfoViewControllerメンバー変数が含まれているとすると、parentObject内でRequestを呼び出すと次のようになります。

[parentObject.adminController performSelector:@selector(Request)];
于 2012-12-06T09:57:17.057 に答える