Xcode 如何在UINavigationBar中连接按钮?
我将Xcode 如何在UINavigationBar中连接按钮?,xcode,interface-builder,uibutton,uinavigationbar,Xcode,Interface Builder,Uibutton,Uinavigationbar,我将UINavigationBar放在XIB表单上。然后我在表单上删除了一个ui按钮(而不是ui导航栏)。我将类型更改为InfoLight(使其看起来像一个信息符号) 然后我将ui按钮拖到UINavigationBar上,并将其设置为右按钮。由于拖动,它神奇地将类型从UIButton更改为UIButtonBarItem 为什么我不先把ui按钮拖到ui导航栏上?因为,一旦按钮出现,Interface Builder将不允许您出于任何原因将类型更改为InfoLight 在相邻的.h文件中,我为iAc
UINavigationBar
放在XIB表单上。然后我在表单上删除了一个ui按钮
(而不是ui导航栏
)。我将类型更改为InfoLight
(使其看起来像一个信息符号)
然后我将ui按钮拖到UINavigationBar
上,并将其设置为右按钮。由于拖动,它神奇地将类型从UIButton
更改为UIButtonBarItem
为什么我不先把ui按钮
拖到ui导航栏上
?因为,一旦按钮出现,Interface Builder将不允许您出于任何原因将类型更改为InfoLight
在相邻的.h文件中,我为iAction
- (IBAction) btnInfoClick;
然后在.m文件中,我编写了实现:
- (IBAction) btnInfoClick {
// kick off the about screen
// code follows
}
现在如何将导航栏上的按钮连接到我的btnInfoClick功能
还是我一开始就走错了路
我应该注意,如果我只是简单地将一个按钮从库直接拖到导航栏上,我可以单击文件所有者图标,然后将btnInfoClickiAction
拖到按钮上。在这种情况下,单击事件将正常触发
但是,在我首先将按钮拖到其他位置,然后拖到导航栏上的场景中,事件永远不会触发。不确定我做错了什么。打开IB,选择UIBarButtonItem,然后在Inspector中,转到Connections选项卡 从选择器右侧的点拖动到AppDelegate/文件的所有者(已定义操作的所有者)并选择操作 我想你已经试过了,不过以防万一。当动作未显示时,请尝试调整动作定义,使其类似于:
- (IBAction)btnInfoClick:(id)sender;
然后再试一次。我知道您实际上不必指定发送者(至少是以编程方式,我一直使用的方式),但我遇到了同样的问题,在添加sender参数后,它工作正常
祝你好运,让我知道这是否有效 我想,这是IB中的一个bug。但我找到了一个解决方法。为子孙后代转载: