稍微解释一下我为什么要实现这个设计。
但是我想问的问题是:如果我有一个视图并且它的控制器是 ControllerA,那么现在我想在我的那个视图中添加一个子视图,假设 View1。该子视图 View1 包含一个按钮,我将 IBAction 点设置为 ControllerA。
但我发现这个 View1 按钮无法更改原始视图对象中的某些属性,例如UIImageview.hidden
.
subview 中的按钮不能改变 superview 中的内容吗?或者我需要设置其他的东西来完成这个任务。
稍微解释一下我为什么要实现这个设计。
但是我想问的问题是:如果我有一个视图并且它的控制器是 ControllerA,那么现在我想在我的那个视图中添加一个子视图,假设 View1。该子视图 View1 包含一个按钮,我将 IBAction 点设置为 ControllerA。
但我发现这个 View1 按钮无法更改原始视图对象中的某些属性,例如UIImageview.hidden
.
subview 中的按钮不能改变 superview 中的内容吗?或者我需要设置其他的东西来完成这个任务。
我猜你试图在button
里面添加一个UIView
也是一个subview
)View(UIViewController
。
正如您在尝试访问 Button 属性时所说的那样,您不能这样做。
发生这种情况是因为当我们通过 XIb 创建任何东西时,如果我们想要访问该 UIControl 或其他任何东西,那么我们已经在我们的源代码中引用了它。所以您将通过 Xcode 的引用连接 UIButton。正如我在下图中所做的那样。
我希望我明白你的意思。对你有帮助
很难准确理解您在说什么,但听起来您正在尝试访问该 UIView 之外的 UIView 实例的子视图。如果它不是一个 UIView 子类,其中您有对该子视图的 ivar/属性引用,您可以尝试给它一个标签并以这种方式访问它。
例子:
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];