在 Xcode 的界面构建器中添加 UIViews 时,您可以使用 Ctrl+拖动来为包含该视图的 UIViewController 创建一个目标操作。您也可以对使用 IB 添加的任何子视图执行此操作。
如果在 awakeFromNib 中以编程方式创建和添加子视图,有没有办法将目标操作从它添加到视图控制器,或者您必须先在 awakeFromNib 中创建子视图,然后使用视图控制器创建目标操作作为代表?
在 Xcode 的界面构建器中添加 UIViews 时,您可以使用 Ctrl+拖动来为包含该视图的 UIViewController 创建一个目标操作。您也可以对使用 IB 添加的任何子视图执行此操作。
如果在 awakeFromNib 中以编程方式创建和添加子视图,有没有办法将目标操作从它添加到视图控制器,或者您必须先在 awakeFromNib 中创建子视图,然后使用视图控制器创建目标操作作为代表?
如果它是从头开始创建的,则必须手动绑定事件。
但是,如果它是从另一个 NIB 加载的,则至少有 2 个选项:
您可以从视图中获取 uiviewcontroller,请参阅此答案:https ://stackoverflow.com/a/3732812/126995然后您可以将 VC 传递给loadNibNamed:owner:options:方法。
在 IB 中,您可以将根视图的类型从UIView
自定义 UIView 派生类更改,并将子视图中的操作和出口绑定到 NIB 的根视图。