【问题标题】:Subviews added programmatically to UIView in storyboards does not responds to action以编程方式添加到情节提要中的 UIView 的子视图不响应操作
【发布时间】:2012-01-30 16:42:00
【问题描述】:

我有一个包含许多元素的滚动视图,我必须将其构建为单独的 xib,因为 Storyboards 图形界面正在剪辑它,使我无法使用。

xib 是使用界面构建器构建的,以图形方式将文件的所有者设置为相同的视图控制器允许我按住 ctrl 单击并在其中的按钮和方法之间进行链接。

在 viewDidLoad 方法中添加视图是这样的:

UIView *w = [[[NSBundle mainBundle] loadNibNamed:@"MainView" owner:self options:nil] objectAtIndex:0];
[self.myView.subviewolder addSubview:w];

其中 myView 是主视图,subviewHolder 是 UIScrollView 容器,它们都链接到控制器,并且子视图被添加并显示得很好。 Self 当然是视图控制器。

似乎没有响应的是链接到我在子视图中的 UIButtons 的视图控制器中的操作。我已经设置了一些断点,但流程并没有通过那里。

我错过了什么?

谢谢

【问题讨论】:

  • nib文件中连接的按钮的动作是什么?
  • 它们是标准 (IBAction) 方法。
  • 是的,但是您将它们与什么联系起来?文件所有者,nib 中的对象...?
  • 希望我理解正确,问题文件的所有者设置为同一个视图控制器,并且插座连接到它
  • 好的,我现在知道了。我在那儿有点笨,对不起!

标签: objective-c uiview uiviewcontroller xcode4.2 uistoryboard


【解决方案1】:

答案很简单,我做错的是声明 subviewholder 的高度比添加的 subviews 小得多。 我认为 subviewholder 会充当占位符,但它会导致子视图正确显示,但会因为与用户交互有关的内容而被“剪辑”,因此从未调用过 IBAction。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    相关资源
    最近更新 更多