将int类型的变量传递给parentViewController [iOS]

时间:2012-12-21 23:16:31

标签: iphone objective-c ios xcode uiviewcontroller

我正在构建一个使用Jeremy Fox的JFDepthView库的iPad应用程序。对于那些不熟悉的人来说,它基本上允许新的视图控制器带来前面和中心,将父视图发送到背景并对其应用模糊算法以将用户焦点带到呈现的顶视图。这一切都很完美,但我在设置int的值并将其从显示的topView传递回parentViewController时遇到问题。

我有TTViewController这是原始视图控制器。此视图会点按一个按钮,JFDepthView会启动并在名为TTViewController的{​​{1}}之上显示新视图。当点击IndustryViewController上的按钮时,我想要取消该视图并在父IndustryViewController上执行特定操作,具体取决于按下该按钮时我设置的TTViewController

我在原始(父)viewController中为我的int创建了一个属性。

int

在我的子视图控制器(JFDepthView顶部显示的控制器)中,我试图访问父级并设置变量的值,然后关闭视图。

@interface TTViewController : UIViewController <JFDepthViewDelegate> {

}

@property (nonatomic, assign) int          defence;

@end

我没有错误或警告,一切都很好。但是int'debence'的值总是为0.我显然做错了,并且对parentViewController设置缺乏了解。任何人都可以填补空白或指出我正确的方向吗?

编辑:似乎如果我退出@implementation IndustryViewController - (IBAction)defenceBtnPressed:(id)sender { TTViewController *viewController = (TTViewController *)self.parentViewController; viewController.defence = 1; [self.depthViewReference dismissPresentedViewInView:self.presentedInView animated:YES]; } parentViewController,他们都是presentingViewController。我在设置后立即注销了防御变量,它实际上从未实际设置为'1'。

1 个答案:

答案 0 :(得分:1)

检查self.parentViewController是否为nil。我猜想JFDepthView不会自动为你设置parentViewController

如果self.depthViewReference是父视图控制器(即您调用presentViewController:xxx inView:self.view以显示当前VC的那个),则将其简化为所需的类TTViewController并设置{ {1}}就此而言。