想知道我如何设置已经在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];
所有帮助表示感谢,谢谢。
答案 0 :(得分:2)
尝试使用[self.navigationController popToRootViewControllerAnimated:YES]
。应该这样做。
修改强>
如果您只有一个RootViewController实例,那么您可以将其设置为单例,因此您可以从任何其他控制器访问它(就像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实例,则不应使用单例方法。
希望这有帮助!