不能 link 一个条形按钮到超类中的 @IBAction
Can't link a bar button to an @IBAction in superclass
我有许多视图控制器,每个视图控制器都有自己的菜单按钮(UIBarButton
,已添加到情节提要中)。现在我想 link 所有这些在它们的 superclass 中达到一个单一的 @IBAction
函数(superclass 对于所有具有该菜单按钮的视图控制器都是相同的)。
现在我已经 linked up @IBOutlet
s 到超级 class,但它似乎不适用于 @IBAction
s,即使函数不是私有的,它绝对是 superclass 的一部分(我正在重构,之前它是每个 class 中的 @IBAction
,它只做了 menuButtonTap()
(调用 superclass).
中的方法
有什么想法吗?
我已经通过在超类上手动创建一个 @IBAction
并赋予它们与我在子类中创建的名称相同的名称来解决问题。然后我删除了子类中的那些。根据 Xcode,这从故事板中留下了 'dangling reference',但我知道它在那里。
您可以像从子视图向 UITabbar 按钮添加动作时那样做 class。
假设 btn 是一个 UIBarButtonItem,
[btn setTarget:self.superview];
[btn setAction:@selector(menuButtonTap:)]
您是否偶然使用了 __unused 关键字?如果你这样做,IBAction 将不会出现在情节提要中(我正在使用 Xcode 6.3.2)
- (IBAction)actionBack:(__unused id)sender;
vs
- (IBAction)actionBack:(id)sender;
为了使其显示和可选,删除了 __unsused 关键字。
尽管从 Xcode 9.4 开始,这对于通用 UIViewController
仍然不起作用(但您的解决方法仍然有效),请注意,它可以按预期用于 UITableViewCell
模板在情节提要中。
如果情节提要中的某些模板单元共享包含 @IBOutlet
属性的相同基础 class,您将能够像往常一样将它们 link 到每个模板单元实例:
然后 Xcode 将显示一个弹出窗口,告知 link 在哪个原型单元格中“支持”:
我不确定为什么这第二步是必要的,因为您指定了来自 在 给定原型单元
中的特定组件
我有许多视图控制器,每个视图控制器都有自己的菜单按钮(UIBarButton
,已添加到情节提要中)。现在我想 link 所有这些在它们的 superclass 中达到一个单一的 @IBAction
函数(superclass 对于所有具有该菜单按钮的视图控制器都是相同的)。
现在我已经 linked up @IBOutlet
s 到超级 class,但它似乎不适用于 @IBAction
s,即使函数不是私有的,它绝对是 superclass 的一部分(我正在重构,之前它是每个 class 中的 @IBAction
,它只做了 menuButtonTap()
(调用 superclass).
有什么想法吗?
我已经通过在超类上手动创建一个 @IBAction
并赋予它们与我在子类中创建的名称相同的名称来解决问题。然后我删除了子类中的那些。根据 Xcode,这从故事板中留下了 'dangling reference',但我知道它在那里。
您可以像从子视图向 UITabbar 按钮添加动作时那样做 class。
假设 btn 是一个 UIBarButtonItem,
[btn setTarget:self.superview];
[btn setAction:@selector(menuButtonTap:)]
您是否偶然使用了 __unused 关键字?如果你这样做,IBAction 将不会出现在情节提要中(我正在使用 Xcode 6.3.2)
- (IBAction)actionBack:(__unused id)sender;
vs
- (IBAction)actionBack:(id)sender;
为了使其显示和可选,删除了 __unsused 关键字。
尽管从 Xcode 9.4 开始,这对于通用 UIViewController
仍然不起作用(但您的解决方法仍然有效),请注意,它可以按预期用于 UITableViewCell
模板在情节提要中。
如果情节提要中的某些模板单元共享包含 @IBOutlet
属性的相同基础 class,您将能够像往常一样将它们 link 到每个模板单元实例:
然后 Xcode 将显示一个弹出窗口,告知 link 在哪个原型单元格中“支持”:
我不确定为什么这第二步是必要的,因为您指定了来自 在 给定原型单元
中的特定组件