我正在构建一个使用 Jeremy FoxJFDepthView
库的 iPad 应用程序。对于那些不熟悉的人来说,它基本上允许一个新的视图控制器放在前面和中心,将父视图发送到背景并对其应用模糊算法以将用户焦点带到呈现的顶视图上。这一切都很完美,但我在设置 int 的值并将其parentViewController
从呈现的 topView 传递回时遇到问题。
我有TTViewController
哪个是原始视图控制器。在这个视图上点击一个按钮并启动并在被调用JFDepthView
的顶部呈现一个新视图。当点击按钮时,我希望关闭该视图并在父级上发生特定操作,具体取决于我在按下按钮时设置的回传。TTViewController
IndustryViewController
IndustryViewController
TTViewController
int
我在原始(父)viewController 中为我的 int 创建了一个属性。
@interface TTViewController : UIViewController <JFDepthViewDelegate> {
}
@property (nonatomic, assign) int defence;
@end
在我的子视图控制器(JFDepthView 在顶部显示的那个)中,我试图访问父视图并设置变量的值,然后关闭视图。
@implementation IndustryViewController
- (IBAction)defenceBtnPressed:(id)sender
{
TTViewController *viewController = (TTViewController *)self.parentViewController;
viewController.defence = 1;
[self.depthViewReference dismissPresentedViewInView:self.presentedInView animated:YES];
}
我没有收到任何错误或警告,一切正常。但是 int 'defence' 的值始终为 0。我显然做错了什么,对 parentViewController 设置缺乏了解。任何人都可以填写空白或指出正确的方向吗?
编辑:似乎如果我注销parentViewController
并且presentingViewController
它们都是NULL
. 在设置防御变量后,我也立即注销了它,它实际上从未设置为“1”。