TL; DR:我在VC中有一个需要从VC启动展开方法的对象。谁知道怎么做?
详情&代码:
我有一个名为UIImageViewQuestion
的自定义UIImageView。当它包含在(PreKnowledgeViewController
)中的viewController被加载时,我运行这个标准的创建代码:
UIImageViewQuestion *imageView = [[UIImageViewQuestion alloc] initWithImage:questionsArray[[myVariables sharedGameData].currentQuestionInt]];
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.clipsToBounds = YES;
imageView.frame = CGRectMake(0,0, 320, 504);
[self.view addSubview:imageView];
imageView.userInteractionEnabled = true;
标准。但是,当UIImageViewQuestion
接收到点击时,我在那里执行一些逻辑来确定点击的位置并决定用户是否选择了正确的位置。在此之后,我需要从PreKnowledgeViewController
执行unwindSegue。
另外,如果我的逻辑或代码中有任何明显的错误,请告诉我。我绝对不知道自己在做什么。
感谢您的帮助!
答案 0 :(得分:0)
首先,我建议您将图片视图重命名为不使用UI前缀。通常,以现有框架前缀开头的命名类可能会导致冲突,如果其他人需要阅读您的代码,肯定会引起混淆。
否则此问题已经得到解答。
答案 1 :(得分:0)
找到我的解决方案。在创建对象时将ViewController传递给属性允许您在需要时调用类似下面的内容。
`UIImageViewQuestion *imageView = [[UIImageViewQuestion alloc] initWithImage: (... other init info)
imageView.preKnowledgeViewController = self;`
[_preKnowledgeViewController.navigationController popViewControllerAnimated:true];
绝对是一个非常明显的答案,但我希望有一些更干净的东西。这适用于现在。