1

すでにNavigationControllerのスタックにあるViewControllerのプロパティを設定する方法を知りたい

私の状況:

このような画像アップロードフローを設定したい

(ナビゲーションスタック)RootViewController-> TakePictureViewController-> EditPictureViewController-> UploadPictureViewController

ユーザーがUploadPictureViewControllerからのアップロードを確認したら、アップロードを開始するのではなく、アップロードクエリを含むRootViewControllerにNSDictionaryプロパティを設定し、ナビゲーションスタックをRootViewControllerにポップして、クエリ。

これがuploadpictureviewcontrollerの私のコードです。現在、コードは右側のView Controllerにポップされますが、uploadPackageプロパティはまだnilであり、これも試しました。-setUploadPackage

RootViewController *rvc = (RootViewController *)[self.navigationController.viewControllers objectAtIndex:0];

rvc.uploadPackage = uploadPackage;

[self.navigationController popToViewController:rvc animated:YES]; 

おかげで、すべての助けに感謝します。

4

1 に答える 1

2

を使用してみてください[self.navigationController popToRootViewControllerAnimated:YES]。それはそれをする必要があります。

編集:

RootViewControllerのインスタンスが1つしかない場合は、それをシングルトンとして設定できるため、他のコントローラーからアクセスできます(appDelegateと同様)。RootViewController.mこれを行うには、以下をアンダーに追加する必要がありますsynthesize...;

static RootViewController *rootViewController;

+(id)sharedRootController {
    return rootViewController;
}

initメソッド内RootViewControllerに次の行を追加します。

rootViewController = self;

ここUploadPictureViewControllerで、uploadPackageを次のように設定できます。

RootViewController *rvc = [RootViewController sharedRootController];
rvc.uploadPackage = uploadPackage;

RootViewControllerのインスタンスが複数ある場合は、シングルトンメソッドを使用しないでください。

お役に立てれば!

于 2012-08-15T17:21:36.567 に答える