1

想知道如何设置已经在 NavigationController 堆栈上的视图控制器的属性

我的情况:

我想设置这样的图片上传流程

(导航堆栈)RootViewController -> TakePictureViewController -> EditPictureViewController -> UploadPictureViewController

当用户确认从 UploadPictureViewController 上传,而不是开始上传时,我想在 RootViewController 上设置一个包含上传查询的 NSDictionary 属性,然后将导航堆栈弹出回 RootViewController 并让它处理启动和状态报告询问。

这是我在uploadpictureviewcontroller中的代码,目前,代码确实弹出到正确的视图控制器,但uploadPackage属性仍然为零,我也尝试过-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 实例,那么您可以将其设置为单例,因此您可以从任何其他控制器访问它(就像 appDelegate 一样)。为此,您需要将以下内容添加到您的RootViewController.munder 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 回答