有一点可以解释为什么我要实现这个设计。
但我想问的问题是:如果我有一个视图,它的控制器是ControllerA,现在我想在我的视图中添加一个子视图,假设View1。子视图View1包含一个按钮,我将IBAction点设置为ControllerA。
但我发现这个View1按钮无法更改原始视图对象中的某些属性,如UIImageview.hidden
。
子视图中的按钮不能改变superview中的内容吗?或者我需要设置其他东西来完成这项任务。
答案 0 :(得分:0)
很难准确理解你所说的内容,但听起来你正试图访问UIView之外的UIView实例的子视图。如果它不是一个UIView子类,你有一个对该子视图的ivar / property引用,你可以尝试给它一个标记并以这种方式访问它。
示例:
UIView *topLevelView = [[UIView alloc] init];
UIView *viewA = [[UIView alloc] init];
UIView *otherView = [[UIView alloc] init];
otherView.tag = 5;
[topLevelView addSubview:viewA];
[topLevelView addSubview:otherView];
UIView *viewASubview = [[UIView alloc] init];
[viewA addSubview:viewASubview];
UIView *referenceToOtherView = [viewASubview.superview.superview viewWithTag:5];
UIView *anotherReferenceToOtherView = [topLevelView viewWithTag:5];
答案 1 :(得分:0)
我猜您尝试在button
内添加UIView
,subview
也是View(UIViewController
的{{1}}。
正如您所说,每当您尝试访问Button属性时,您都无法执行此操作。
这种情况正在发生,因为如果我们想要访问UIControl,或者我们在我们的源代码中参考了那些,那么我们通过XIb创建任何东西。所以你将从Xcode引用UIButton。 正如我在下面的图片中所做的那样。
我希望我得到你的观点。它会对你有所帮助